如何使用 linux
命令提示符中的 chmod
将所有文件更改为 644 并将所有文件夹更改为 755? (终端)
http://superuser.com
:P 但这个问题在这里帮助了我,谢谢。
一种方法可能是使用 find:
对于目录
find /desired_location -type d -print0 | xargs -0 chmod 0755
对于文件
find /desired_location -type f -print0 | xargs -0 chmod 0644
最简单的方法是:
chmod -R u+rwX,go+rX,go-w /path/to/dir
这基本上意味着:
以递归方式ch
调整文件mod
和 -R
:
用户:读、写和执行权限,
组和其他用户:读取和执行权限,但没有 -write 权限。
请注意,X
将使目录成为可执行文件,而不是文件,除非它已经是可搜索/可执行的。
+X - 如果任何人都可以搜索/可执行目录或文件,则每个人都可以搜索/可执行该目录或文件。
请查看man chmod
了解更多详情。
另请参阅:SU 的 How to chmod all directories except files (recursively)?
我能想到的最短的是:
chmod -R a=r,u+w,a+X /foo
它适用于 GNU/Linux,而且我一般相信 Posix(根据我的阅读:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html)。
这是做什么的:
将文件/目录设置为 r__r__r__ (0444) 为所有者添加 w,以获取 rw_r__r__ (0644) 为所有目录设置执行(目录为 0755,文件为 0644)。
重要的是,第 1 步权限清除所有执行位,因此第 3 步仅添加目录(从不文件)的执行位。此外,所有三个步骤都发生在目录被递归到之前(因此这不等同于例如
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
因为 a=r 从目录中删除 x ,所以 chmod 不能递归到它们。)
在 https://help.directadmin.com/item.php?id=589 他们写道:
如果您需要一种快速的方法将您的 public_html 数据重置为目录的 755 和文件的 644,那么您可以使用以下内容:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
我测试并且......它有效!
我最容易记住的是两个操作:
chmod -R 644 dirName
chmod -R +X dirName
+X 只影响目录。
这对我有用:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
find /A -type X -exec chmod Y '{}' \;
一次性完成这两项操作:
find -type f ... -o -type d ...
如中,找到类型 f 或类型 d,然后对文件执行第一个...,对目录执行第二个...。具体来说:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
如果您希望它静默工作,请不要使用 --changes
。
这也可以工作:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.
sudo find /your/location -type f -exec chmod 644 {} \;
用于文件和sudo find /your/location -type d -exec chmod 755 {} \;
用于目录chmod -R a=r,u+w,a+X /foo
更好?unable to execute /bin/chmod: Argument list too long
失败