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
但是我更喜欢小脚本而不是打字...