2011-03-02 51 views
16

如何使用ls列出子目錄,其中'-d'只顯示當前目錄。我想像find . -type d -maxdepth 1會給我。使用ls列出子目錄

+1

也許你想寫:'找。 -type d -maxdepth 1'('-maxdepth'沒有'='。 – 2011-03-02 13:43:39

+0

謝謝,改變了它:-) – Bernhard 2011-03-02 13:47:15

回答

26

這應有助於:

ls -d */

*/只將當前目錄下匹配的目錄。輸出目錄名稱可能會包含結尾的'/'。

+4

爲了討論這個問題,你應該做'ls -d。*/* /'或'shopt -s dotglob; ls -d。* /',否則以點('.')開始的目錄將不會被列出。 – 2011-03-02 13:41:33

6

ls -d */ls -d */*/似乎工作得很好。

3

您可以使用grep結合:

ls -l | grep '^d' 

只獲取文件名:

ls -l | grep '^d' | awk '{ print $9 }' 

您可以到這一個方便別名

alias ldir="ls -l | grep '^d'" 
+2

如果你已經使用'awk','grep'是多餘的:'ls -l | awk'/^d/{print $ 9}'' – 2011-03-02 13:48:13