最後列出點目錄的目錄,然後是點文件

最後列出點目錄的目錄,然後是點文件

我知道這個ls選擇--group-directories-first,但這不是我想要實現的目標。

輸出應該是:(按名稱 ASC 排序)

  • 目錄
  • 隱藏目錄
  • 隱藏文件

答案1

使用 GNU ls-U告訴ls不對檔案清單進行排序的選項是 GNU 擴充功能):

ls -lUd -- *(/) .*(/) .*(^/)

但問題是,如果這些 glob 中的任何一個不匹配,該命令將被取消,所以你可以這樣做:

myls() (
  setopt cshnullglob
  ls -lUd -- *(/) .*(/) .*(^/)
)

這模擬了一種csh行為,只要命令中至少有一個 glob 擴展為某些內容,則不匹配的 glob 就會擴展為任何內容。

請注意,zshglob 永遠不會擴展...,因此這兩個永遠不會被包含在內。

相關內容