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
และถ้าคุณสนใจ-u
จะเรียงลำดับตามเวลาเข้าถึงมากกว่าเวลา mod