2012-03-06 28 views
5

我正嘗試使用find命令從我的工作目錄中查找所有文件'M *',並以目錄順序顯示結果。以目錄順序查找命令列表結果

相反,它會按排序順序顯示結果,這會導致一些較深的目錄首先被列出,因爲它們按字母順序排列。

$ find -name 'M*' 
./MyFourth 
./s/MyFirst 
./s/v/b/MyThird 
./s/v/MySecond 

我想它是按以下順序:

./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 

感謝您的幫助

+0

python,ruby,perl ...? – 2012-03-06 10:54:21

+0

http://stackoverflow.com/a/120701/650405 – 2012-03-06 11:03:40

回答

4

如果我理解正確你所說的「目錄訂單」的意思,這應該幫助:

find -name 'M*' -printf '%p\t%d\n' | sort -n -k2 | cut -f 1 

它在目錄樹中打印按深度排序的文件。

+1

不幸的是,它將目錄的內容及其子目錄的列表分開。 – blueshift 2012-03-06 11:31:51

1
$ find . -name 'M*' | awk -F/ '{print NF,$0}' | sort -k1,1n -k2 | cut -d' ' -f 2- 
./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 
相關問題