我有一个目录树,我想递归搜索某种类型的所有文件(例如all .jpg
),但是我只想列出这些文件,如果它们在目录树的底部。
例如,如果我的树看起来像:
home
root
f1 f2 f3
f11 f22 f33
f111 f222 f333
并且所有文件夹都具有.jpg
,我只想.jpg
在f111
/ f222
/中列出f333
,依此类推,而忽略上层文件夹中的。
我知道我可以使用find命令(如find . -name "*.jpg"
)来获取.jpg
整个树中所有目录的列表,但是我不确定如何将其限制为仅最底部的文件夹而不进行诸如grep
将结果添加到过滤器111
/ 222
/ 333
,这实际上是不可行的,因为我有数百个文件夹,而且我不知道最后一层的文件夹可能会分别为它们命名。
您可以分两步执行此操作:
find . -type d -links 2 -print0 | xargs -0 -I{} find {} -name \*.jpg
第一个命令列出了没有任何子目录的所有目录(因为每个子目录都将一个添加到链接计数中,而一个空目录则包含两个)。第二个find
手动调用这些结果中的每一个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句