在此,广度优先的列表很重要。而且,限制搜索的深度将是很好的。
$ find . -type d /foo /foo/subfoo /foo/subfoo/subsub /foo/subfoo/subsub/subsubsub /bar /bar/subbar $ find . -type d -depth /foo/subfoo/subsub/subsubsub /foo/subfoo/subsub /foo/subfoo /foo /bar/subbar /bar $ < what goes here? > /foo /bar /foo/subfoo /bar/subbar /foo/subfoo/subsub /foo/subfoo/subsub/subsubsub
如果可能的话,我想使用bash单线执行此操作。如果有一个javascript-shell,我会想像
bash("find . -type d").sort( function (x) x.findall(/\//g).length; )
该find命令支持-printf可识别大量占位符的选项。
find
-printf
这样的占位符之一就是%d呈现给定路径相对于find起点的深度。
%d
因此,您可以使用以下简单的单线:
find -type d -printf '%d\t%P\n' | sort -r -nk1 | cut -f2-
它非常简单,并且不依赖于像这样的繁重工具perl。
perl
怎么运行的: