有人可以给我一个递归命令,它将通过一个目录并使所有正常文件权限644和所有子目录755?
每次我必须在主机上安装东西时,我真的厌倦了这样做。我不知道BASH(Shell?)命令执行此操作。
答案 0 :(得分:15)
有X选项。
chmod a+X * -R
这将只为目录而不是文件提供执行位。要使用一个命令分别设置644,755,请使用:
chmod a=rX,u+w <files/dirs> -R
答案 1 :(得分:12)
第一行更改文件权限,第二行更改活动目录及其子目录中的目录权限。
find . -type f -print0 | xargs -0 chmod 644
find . -type d -print0 | xargs -0 chmod 755
答案 2 :(得分:3)
使用符号模式名称而不是原始数字权限:
chmod -R u=rwX,go=rX somedir
X
权限标志仅将目录或已执行文件设置为可执行文件,-R
标志表示“递归”,并将权限应用于somedir
的所有内容。
答案 3 :(得分:2)
不,没有命令以递归方式更改权限。如果有这样一个命令,那就违反了Unix的口头禅:做一件事并做得好。
但是,有两个命令:一个用于递归(find
),另一个用于更改权限(chmod
)。
所以,魔术命令行是:
find . -type d -exec chmod 0755 '{}' + -or -type f -exec chmod 0644 '{}' +