按目录顺序查找命令列表结果

时间:2012-03-06 10:43:39

标签: linux

我正在尝试使用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

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

如果我正确理解“目录顺序”的含义,这应该会有所帮助:

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

它打印在目录树中按深度排序的文件。

答案 1 :(得分: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