2012-03-06 11 views
5

findコマンドを使用して、作業ディレクトリからすべてのファイル 'M *'を検索し、結果をディレクトリ順に表示しようとしています。コマンドリストの検索結果をディレクトリ順

代わりに、ソートされた順に結果が表示されます。その結果、アルファベット順に並べ替えられているため、より深いディレクトリが最初に表示されます。

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

私はそれがこの順になりたい:あなたの助け

+0

python、ruby、perl ...? –

+0

http://stackoverflow.com/a/120701/650405 –

答えて

4

ため

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

おかげで、私はあなたが「ディレクトリ順」によって意味を正しく理解していれば、これは役立つはず:

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

ディレクトリツリーに深さでソートされたファイルを出力します。

+1

残念ながら、これはディレクトリの内容とそのサブディレクトリのリストを区切ります。 – blueshift

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 
関連する問題