如果 -exec 命令失败,如何让 find 返回非 0?

如果 -exec 命令失败,如何让 find 返回非 0?

当我运行find带有-exec失败的子命令的命令时,find返回0退出代码:

$ find . -iname '*.txt' -exec ls foo \;
ls: foo: No such file or directory
ls: foo: No such file or directory
ls: foo: No such file or directory
ls: foo: No such file or directory
ls: foo: No such file or directory
ls: foo: No such file or directory
ls: foo: No such file or directory
$ echo $?
0

find如果其任何子命令失败,有什么办法可以使其失败吗?

答案1

这就是 find 的局限性,参考标准: http://pubs.opengroup.org/onlinepubs/009695399/utilities/find.html

除非遍历目录时发生错误,否则它将返回 0。

改用 xargs。

相关内容