查找...-exec 命令未在找到的所有文件上执行

查找...-exec 命令未在找到的所有文件上执行

这个命令怎么来的:

find . -name \*.css -o -name \*.php -type f

给出了所有 *.css 和 *.php 文件的列表,但添加了“exec”选项:

find . -name \*.css -o -name \*.php -type f -exec chmod 664 {} \;

仅更改文件的文件权限*.php,而不更改*.css

注意:我正在使用 Amazon EC2 Linux。

答案1

您误解了 AND / OR 操作。

find . \( -name \*.css -o -name \*.php \) -type f -exec chmod 664 {} \;

find 尝试找出表达式是真还是假。如果 OR 的左侧已经为真,则无需执行右侧。如果 OR 的优先级高于 AND,则您的方法会有效,但事实并非如此。

相关内容