如何在以下两种情况下使用 chmod 递归将所有文件权限更改为 644 并将所有文件夹权限更改为 755:
- 如果他们有
777
权限 - 无论权限如何(具有任何权限)
答案1
find . -type d -perm 777 -exec chmod 755 {} \;
(用于更改目录权限)
find . -type f -perm 777 -exec chmod 644 {} \;
(用于更改文件权限)
如果文件/目录没有777
权限,我们可以轻松删除该-perm 777
部分。这些命令的优点是它们可以针对常规文件或目录,并且仅将 chmod 应用于与特定权限匹配的条目。
.
是开始搜索的目录
-type d
是匹配目录(-type f
匹配常规文件)
-perm 777
匹配具有 777 权限的文件(允许用户、组和所有人读取、写入和执行)
-exec chmod 755 {} \;
对于每个匹配的文件,执行命令,chmod 755 {}
其中 {} 将被文件路径替换。;
表示命令的结束,此后的参数将;
被视为find
参数。我们必须使用 对其进行转义,\
因为;
是默认的 shell 分隔符,否则它将意味着命令的结束find
。
答案2
无论权限如何:
chmod -R a=r,a+X,u+w /your/path
答案3
sudo find /path/to/someDirectory -type f -print0 | xargs -0 sudo chmod 644
和
sudo find /path/to/someDirectory -type d -print0 | xargs -0 sudo chmod 755