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)