如何在文件系统中搜索路径中第一个匹配项?例如,搜索 foo:
./some/foo/long/foo/path
./another/foo/long/foo/path
应该返回:
./some/foo/
./another/foo/
我认为 find 命令应该能够做到这一点,但我不知道要使用哪些标志,显然任何其他可以实现结果的命令都可以。
答案1
查找名为foo
and-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'