我想以递归方式 chmod 一个目录以便:
- 文件为 0664
- 目录是 0775
如何做得更好、更短、更漂亮?:) 也许,以某种方式使用 umask?
所有find
解决方案都太长了:我总是以复制粘贴结束:)
答案1
根据您的 chmod 版本,您可能可以执行以下操作:
chmod -R . ug+rwX,o+rX,o-w
注意首都X. 这将在已经设置了执行位的目录和文件上设置可执行位。
请注意,大写 X 只能与“+”一起使用,而不能与“=”或“-”一起使用。
答案2
比什么更好、更短、更漂亮?
cd /directory
find . -type d -exec chmod 0755 {} +
find . -type f -exec chmod 0664 {} +
答案3
添加一句话
find -type f -exec chmod 0644 {} + -o -type d -exec chmod 0755 {} +
答案4
我使用它来处理从 FAT 文件系统复制的所有内容:
chmod -R a-x+X .
如果它不起作用,例如在 Mac OS X 上,请尝试该命令的 GNU 版本chmod
:
gchmod -R a-x+X .