find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n"
ls -t --color=always "%p"\n' |\
. /dev/stdin 2>&-
Điều này tránh mọi vấn đề về danh sách đối số vì đối số duy nhất ls
sẽ nhận được là tên của thư mục bạn muốn liệt kê. Bạn có thể làm điều này với bất cứ điều gì bạn thích.
Vỏ chỉ . sources
là |pipe
như một kịch bản shell - đó là quá trình tương tự và không có vấn đề bạn có thể gặp phải khi execve
được gọi.
Trong mọi trường hợp - ở trên chỉ đi ba chiều sâu mà có thể điều chỉnh bằng cách thay đổi maxdepth
. Nó cũng sâu trước - vì vậy bạn làm việc ngược từ thư mục hiện tại của bạn depth
.
Bạn có thể nhận thấy bạn cũng nhận được $LSCOLORS
- trên máy của tôi, nó cũng cung cấp các cột được in gọn gàng và mọi thứ bạn muốn từ ls
- hoặc, đối với vấn đề đó, bất cứ điều gì bạn có thể tưởng tượng bạn muốn làm với. source.
KHÔNG SVN
Một lần nữa, điều này sẽ làm bất cứ điều gì bạn mong đợi ls
. Vì vậy, ẩn .svn
tập tin đơn giản như thay đổi ls
dòng thành:
ls -t --color=always --hide="*svn" "%p"\n
Hoặc nếu bạn muốn xem các svn
phần mở rộng trong mọi thư mục NHƯNG ./svn
bạn có thể thay đổi nó để toàn bộ lệnh trông như thế này:
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>&-
Cá nhân, tôi thích nó với ls -s
và, nếu bạn quan tâm, -u
sẽ sắp xếp theo thời gian truy cập thay vì thời gian mod.