递归地将所有文件权限更改为 644 并将所有文件夹权限更改为 755

递归地将所有文件权限更改为 644 并将所有文件夹权限更改为 755

如何在以下两种情况下使用 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

相关内容