find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n"
ls -t --color=always "%p"\n' |\
. /dev/stdin 2>&-
Це дозволяє уникнути будь-яких проблем зі списком аргументів, оскільки єдиний аргумент ls
коли-небудь отримає - це ім'я каталогу, який ви хочете перелічити. Ви можете робити це з усім, що завгодно.
Оболонка просто як сценарій оболонки - це той же процес , і не має проблем , ви можете зіткнутися при виклику.. sources
|pipe
execve
У будь-якому випадку - вищесказане йде лише на три глибини, яке регулюється зміною maxdepth
. Спершу це також глибоко - тому ви працюєте назад до поточного каталогу depth
.
Ви можете помітити, що ви також отримуєте $LSCOLORS
- на моїй машині він також містить акуратно надруковані стовпчики та все інше, від чого ви хочете ls
- або, з цього приводу, все, що ви можете собі уявити, що хочете зробити з. source.
НІ SVN
Знову ж таки, це зробить все, що ви очікуєте ls
. Отож, заховати .svn
файли так само просто, як змінити ls
рядок на:
ls -t --color=always --hide="*svn" "%p"\n
Або якщо ви хочете бачити svn
розширення у кожній папці, але ./svn
ви можете змінити його, щоб вся команда виглядала так:
find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n" ; hide=
[ "%p" = "./svn" ] && hide="*svn"
ls -t --color=always --hide="$hide" "%p"\n' |\
. /dev/stdin 2>&-
Особисто мені це подобається з ls's, -s
і якщо вам все одно, -u
буде сортувати за часом доступу, а не часом моди.