我有一个名为a的文件夹,它可能有一个或多个子目录,子目录可能有多个子目录,依此类推。我想知道如何编写一个 shell 脚本来列出包含具有特定扩展名的文件的所有子目录。
所以,可能是这样的
A -> B -> C
-> D -> f2.txt
-> F -> f3.txt
-> E -> G -> H -> f4.txt
因此只会列出 D、F 和 H 目录。实际上,我需要通过列出目录树来快速找到特定 java 类的包名称。例如,在前面的示例中,A.E.G.H 是与 A.D 相同的包,但 A.E.G 不是包,因为 G 只包含子目录 H 没有文件。
最佳答案
我认为你需要find
命令。你可以像这样使用,
find . -name '*.txt'
这里,
.
- 点(.
) 是当前目录。您还可以指定开始的路径。
-name
- 要查找的文件名。
您还可以使用-maxdepth
选项来限制递归查找的深度。通常,find
会递归地查找文件。
更新:
如果您想列出目录,
find . -name '*.txt' -exec dirname {} \;
关于linux - 用于递归列出包含具有特定扩展名的文件的文件夹中的所有子目录的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991467/