我正在尝试使用 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' \;