我有一种情况,我需要找到具有 World Write (WW) 权限 666 的文件,并且我需要使用 664 来修复这些文件。为此,我使用了此命令
find /dir/stuct/path -perm -0002 -type f -print > /tmp/deepu/permissions.txt
Run Code Online (Sandbox Code Playgroud)
当我执行命令时,我得到了具有 WW 权限的文件。现在我的要求是
find /dir/stuct/path -perm -0002 -type f chmod 664
Run Code Online (Sandbox Code Playgroud)
我的语法正确吗?
考虑一下您的要求。您(可能)在您的目录树中有任何可执行文件(脚本或二进制文件)吗?如果是这样,您是要删除执行权限(甚至是您自己的权限),还是要保持执行权限不变?如果你想离开执行权限不变,你应该使用chmod o-w
删除(减)W¯¯从仪式的许可Ø只有thers场。
此外,正如 Anthon 指出的那样,find
另一个答案中给出的命令chmod
为它找到的每个可写的文件执行一次程序。说效率稍微高一点
find top-level_directory -perm -2 -type f -exec chmod o-w {} +
Run Code Online (Sandbox Code Playgroud)
这chmod
一次执行多个文件,最大限度地减少执行程序的数量。
PS 你不需要前导零2
。