将目录的所有文件和文件夹权限更改为644/755

我如何将所有文件更改为644和所有文件夹使用命令提示符下的chmod到755? (终奌站)

一种方法可以使用find:

 find * -type d -print0 | xargs -0 chmod 0755 # for directories find . -type f -print0 | xargs -0 chmod 0644 # for files 

最简单的方法是做:

 chmod -R u+rwX,go+rX,go-w /foo 

这基本上意味着:

通过给予以下方式recursion地修改文件mod -R

  • 使用者:使用者,使用者及执行者的权限,
  • g和其他用户:读取和执行权限,但没有权限。

请注意, X将使目录可执行,但不是文件,除非它已经是可search/可执行的。

+X – 如果任何人已经可以search/执行目录或文件,则可以由任何人search/执行。

请检查man chmod了解更多详情。

另请参阅: 如何chmod除文件(recursion)以外的所有目录? 在苏

这对我工作:

 find /A -type d -exec chmod 0755 {} \; find /A -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 )。

这是做什么的:

  1. 将文件/目录设置为r__r__r__(0444)
  2. 为所有者添加w,得到rw_r__r__(0644)
  3. 如果目录(dir为0755,文件为0644),则为所有目录设置执行。

重要的是,第1步权限清除所有的执行位,所以第3步只加回目录的执行位(从来没有文件)。 另外,所有这三个步骤在一个目录被recursion之前发生(所以这不等于例如

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

因为a = r从目录中删除x,所以chmod不能recursion到它们中。)

做一次通过与:

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

在中,findtypesf OR键入d,然后执行第一个…文件,第二个…对于dirs。 特别:

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

如果你想让它静静地工作,请不要改变。

最容易让我记住的是两个操作:

 chmod -R 644 dirName chmod -R +X dirName 

+ X只影响目录。

这也可以工作:

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