我知道這個ls
選擇--group-directories-first
,但這不是我想要實現的目標。
輸出應該是:(按名稱 ASC 排序)
- 目錄
- 隱藏目錄
- 隱藏文件
答案1
使用 GNU ls
(-U
告訴ls
不對檔案清單進行排序的選項是 GNU 擴充功能):
ls -lUd -- *(/) .*(/) .*(^/)
但問題是,如果這些 glob 中的任何一個不匹配,該命令將被取消,所以你可以這樣做:
myls() (
setopt cshnullglob
ls -lUd -- *(/) .*(/) .*(^/)
)
這模擬了一種csh
行為,只要命令中至少有一個 glob 擴展為某些內容,則不匹配的 glob 就會擴展為任何內容。
請注意,zsh
glob 永遠不會擴展.
和..
,因此這兩個永遠不會被包含在內。