如何更改使用 find 命令找到的多个文件的权限?

Eug*_*e S 11 shell permissions find

我有一个包含大量文件的目录。部分文件有755权限,另一部分有644权限。我想将具有755权限的文件转换为644. 我通过从目录本身运行它来尝试以下行:

find . -perm 755 -exec chmod 644 {}\;
Run Code Online (Sandbox Code Playgroud)

然而,结果,权限只更改了目录本身,在将其更改回来后,我发现文件权限保持不变。我错过了什么吗?

Eug*_*e S 18

好吧,看来我已经找到了问题所在。和之间似乎必须有一个强制空格,因此命令将如下所示:{}\;

find . -perm 755 -exec chmod 644 {} \;
Run Code Online (Sandbox Code Playgroud)

而不是:

find . -perm 755 -exec chmod 644 {}\;
Run Code Online (Sandbox Code Playgroud)

此外,更改目录权限的问题可以通过添加一个-type f标志来解决,因此它看起来如下:

find . -type f -perm 755 -exec chmod 644 {} \;
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 `+` 代替 `\;` 来减少创建的子进程的数量。 (6认同)