在命令的-exec
一部分中可以使用2条find
命令吗?
我已经尝试过类似的方法:
find . -name "*" -exec chgrp -v new_group {} ; chmod -v 770 {} \;
我得到:
查找:-exec缺少参数
chmod:无法访问{}:没有这样的文件或目录
chmod:无法访问;:没有这样的文件或目录
至于find
命令,您也可以-exec
连续添加更多命令:
find . -name "*" -exec chgrp -v new_group '{}' \; -exec chmod -v 770 '{}' \;
请注意,此命令的结果等同于使用
chgrp -v new_group文件&& chmod -v 770文件
在每个文件上。
所有find
的参数,如-name
,-exec
,-size
等等,其实都是测试:find
将继续由一个只要运行它们作为一个整个链条迄今已评估为真。因此,仅当先前的-exec
命令返回true(即命令的退出状态)时,才执行每个连续的命令。但也了解逻辑运算符,例如或()而不是()。因此,要使用一连串的测试而不考虑先前的结果,则需要使用如下所示的内容:0
find
-o
!
-exec
find . -name "*" \( -exec chgrp -v new_group {} \; -o -true \) -exec chmod -v 770 {} \;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句