如何从linux命令提示符中使用chmod将所有文件更改为644,所有文件夹更改为755 ?(终端)


当前回答

一种方法是使用find:

的目录

find /desired_location -type d -print0 | xargs -0 chmod 0755

的文件

find /desired_location -type f -print0 | xargs -0 chmod 0644

其他回答

在 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 a=r,u+w,a+X /foo

它可以在GNU/Linux上工作,我相信在Posix上也可以(从我的阅读:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html)。

它的作用是:

设置文件/目录为r__r__r__ (0444) 为owner添加w,得到rw_r__r__ (0644) 设置执行所有如果一个目录(0755为dir, 0644为文件)。

重要的是,步骤1的权限清除了所有的执行位,所以步骤3只添加了目录(从不是文件)的执行位。此外,这三个步骤都发生在递归到目录之前(所以这并不等同于例如。

chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo

由于a=r将x从目录中移除,因此chmod不能递归到目录中。)

这也可以奏效:

chmod -R 755 *  // All files and folders to 755.

chmod -R 644 *.*  // All files will be 644.

对我来说,最容易记住的是两个操作:

chmod -R 644 dirName
chmod -R +X dirName

+X只影响目录。

同时完成以下两项:

find -type f ... -o -type d ...

比如,找到类型f或类型d,然后做第一个…文件和第二…dirs。具体地说:

find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +

如果您想让它安静地工作,请不要更改。