如何递归更改当前目录中所有目录的权限?

Ala*_*Kis 9 find chmod

如何递归更改当前目录中所有文件和文件夹的文件夹和文件权限?我不确定,为什么,但我的命令失败了

output: chmod: missing operand after '644./components/path/path/path'

我的命令是:

find . * -type d -exec chmod 755{} \;
Run Code Online (Sandbox Code Playgroud)

正如用户pdo 所指出的,我想将文件夹权限更改为 755-

pdo*_*pdo 13

您在 644 之后缺少一个空格。

此外,644 可能不是您想要的目录。你可能想要 755。

编辑以包含以下评论的答案:

对于目录:

find . -type d -exec chmod 755 {} \;

对于文件:

find . -type f -exec chmod 644 {} \;

很可能有其他方法(可能更短)来做到这一点,但这会奏效。


Pau*_*bro 7

另一种方法是:

chmod -R u=rwX,g=rX,o=rX /path/to/dir
Run Code Online (Sandbox Code Playgroud)

大写的 X 是有条件的执行 - 如果文件是目录,则添加执行位,或者如果文件已经可执行,则保留执行位。

虽然这会增加对非目录文件的权限。如果这些权限是可以接受的,这适用于快速添加对文件夹的访问。