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 lssẽ 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ỉ . sourceslà |pipenhư 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 .svntập tin đơn giản như thay đổi lsdòng thành:
ls -t --color=always --hide="*svn" "%p"\n
Hoặc nếu bạn muốn xem các svnphần mở rộng trong mọi thư mục NHƯNG ./svnbạ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 -svà, nếu bạn quan tâm, -usẽ sắp xếp theo thời gian truy cập thay vì thời gian mod.