我有一个使用find
的脚本。到目前为止,我一直很好地使用-exec
来完成我需要做的事情,但我现在遇到了一些障碍。
如果找到文件,我想执行命令一次(所以-exec {} \;
不是我正在寻找的),这是一个不带任何命令的命令文件作为参数,因此-exec {} \+
将不起作用(或者至少它不适用于我的FreeBSD 10.1系统上的find
版本。
这样做最好的方法是什么?
答案 0 :(得分:1)
您需要将文件名传递给xargs
。
我想我错过了一个重要的线索:你的命令对文件名不感兴趣。所以你只想运行一个命令如果找到文件?在这种情况下,您可以尝试类似:
find -name nosuchfile | if read; then echo "hello"; fi;
答案 1 :(得分:0)
-quit
主要版本可与-exec
一起使用,-quit
存在于BSD和GNU find
实现中。构建下面的示例是为了确保find
在第一次匹配后终止,而不管实用程序的退出状态如何。
find path... [expression] \( -exec utility \; -quit -or -quit \)