我遇到一种情况,我需要找到具有世界写入(WW)权限 666 的文件,并且我需要使用 664 来修复此类文件.. 为此,我使用了此命令
find /dir/stuct/path -perm -0002 -type f -print > /tmp/deepu/permissions.txt
当我执行命令时,我得到具有 WW 权限的文件。现在我的要求是
find /dir/stuct/path -perm -0002 -type f chmod 664
我的语法正确吗?
答案1
考虑一下您的需求。您(可能)的目录树中是否有任何可执行文件(脚本或二进制文件)?如果是这样,您是否要删除执行权限(甚至是您自己的权限),还是要保持执行权限不变?如果你想保持执行权限不变,你应该使用chmod o-w
删除(减去)w仪式许可哦仅此字段。
此外,正如 Anthon 指出的那样,find
另一个答案中给出的命令会chmod
针对它找到的每个世界可写文件执行一次程序。说起来效率稍微高一点
find top-level_directory -perm -2 -type f -exec chmod o-w {} +
这会chmod
同时执行多个文件,从而最大限度地减少执行次数。
PS 您不需要2
.
答案2
find /dir/stuct/path -perm -0002 -type f -exec chmod 664 {} \;
“{}”代表find找到的文件。这 ”\;”结束需要执行的命令。