Answers:
没有内置的东西可以找到,甚至GNU都找不到。您可以对输出进行后处理find以按斜杠数量进行排序,例如使用Perl:
find ... | perl -e 'print sort {$a=~s!/!/! <=> $b=~s!/!/!} <>'
<> 是所有输入行的列表;$a =~ s!/!/!g是中的斜杠数$a,我们将其用作排序标准。如果可以使用zsh:
echo **/*(oe\''REPLY=${REPLY//[^\/]}'\')
**/* 列出当前目录和子目录中的所有文件。oe控制返回匹配项的顺序:REPLY在运行代码后,这里对每个匹配项(REPLY最初设置为匹配路径)在引号中按引号后的值进行排序。$REPLY为删除除斜杠之外的所有内容。因此,结果由深度1的所有内容(空结果$REPLY),深度2的所有内容($REPLY最终为/),深度3的所有内容(//等)组成。我的感觉是可以。它涉及grep等和一个循环,但是我发现它工作得很好,特别是针对您有关不需要完成查找的情况。
由于以下原因,它需要更多的资源:
这很好,因为:
#!/ bin / bash
深度= 0
而找到-mindepth $ depth -maxdepth $ depth | grep'。'
做
深度= $((深度+ 1))
做完了
您也可以很容易地将它合理地放在一行上?
depth=0; while find -mindepth $depth -maxdepth $depth | grep --color=never '.'; do depth=$((depth + 1)); done
但是我更喜欢小脚本而不是打字...