按名称查找目录而不搜索匹配的子文件夹

按名称查找目录而不搜索匹配的子文件夹

如何在文件系统中搜索路径中第一个匹配项?例如,搜索 foo:

./some/foo/long/foo/path
./another/foo/long/foo/path

应该返回:

./some/foo/
./another/foo/

我认为 find 命令应该能够做到这一点,但我不知道要使用哪些标志,显然任何其他可以实现结果的命令都可以。

答案1

查找名为fooand-prune的目录。

find . -type d -name foo -prune

find不添加尾部斜杠。如果您确实需要它们,那么:

find . -type d -name foo -prune -exec printf '%s/\n' {} +

您的find系统可能支持或不支持-printf主要系统。如果支持,那么您可以避免调用外部printf可执行文件。例如使用 GNU find

find . -type d -name foo -prune -printf '%p/\n'

相关内容