Linux:find - 一旦发现某物就停止

Linux:find - 一旦发现某物就停止

我正在尝试使用 find 来定位单个目录,并且希望它在找到某些内容时立即停止,这可能吗?

目前我正在使用命令find /directory/to/search/ -maxdepth 4 -name *search_text* -type d -prune ,这大大缩短了运行时间,但在找到我要查找的内容后,它仍会继续运行一段时间。由于这是在脚本中运行的,因此我无法简单地使用Ctrl+c来停止它。有什么建议吗?

答案1

当然可以,只需运行

find /directory/to/search/ -maxdepth 4 -name "*search_text*" -type d -prune -print -quit

查看 find 的手册页及其行动部分

答案2

find ... | head -1

一旦头部读取了一行,它就会关闭管道,从而终止查找。

答案3

我不认为这是直接可能的;find 对此没有任何选择。

我发现此片段当找到第二个结果时,它将终止 find :

find /directory/to/search/ -name *search_text* -print -exec perl -e 'kill "INT", getppid' \;

相关内容