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

Terminal 将目录的所有文件和文件夹权限更改为644/755,terminal,command-prompt,chmod,Terminal,Command Prompt,Chmod,如何使用linux命令提示符下的chmod将所有文件更改为644,将所有文件夹更改为755?(终端)一种方法是使用查找: 目录 档案 最简单的方法是: chmod -R u+rwX,go+rX,go-w /path/to/dir 这基本上意味着: 到change filemodes-R,依次给出: user:read,write和eXecute权限 ggroup和o其他用户:read和eXecute权限,但不-write权限 请注意,X将使目录可执行,但不是文件,除非它已经可搜索/可执行

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

一种方法是使用查找:

目录 档案
最简单的方法是:

chmod -R u+rwX,go+rX,go-w /path/to/dir
这基本上意味着:

ch
ange file
mod
es
-R
,依次给出:

  • u
    ser:
    r
    ead,
    w
    rite和e
    X
    ecute权限
  • g
    group和
    o
    其他用户:
    r
    ead和e
    X
    ecute权限,但不
    -w
    rite权限
请注意,
X
将使目录可执行,但不是文件,除非它已经可搜索/可执行

+X
-使目录或文件可供所有人搜索/执行(如果任何人已经可以搜索/执行)

有关更多详细信息,请查看
man chmod

另请参见:在SU,这对我很有效:

find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;

一次完成这两项操作,方法是:

find -type f ... -o -type d ...
如中所示,找到类型f或类型d,然后执行第一步。。。对于文件和第二个。。。对于dirs。具体而言:

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

如果您想让它安静地工作,请关闭
--changes

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

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.

我能想出的最短答案是:

chmod -R a=r,u+w,a+X /foo
它在GNU/Linux上工作,我一般相信Posix(从我的阅读:)

它的作用是:

  • 将文件/目录设置为r\u r\u r\u(0444)
  • 为所有者添加w,以获取rw_r_r_(0644)
  • 如果目录是一个目录,则为所有设置execute(0755表示目录,0644表示文件)
  • 重要的是,步骤1权限清除所有执行位,因此步骤3只为目录(从不为文件)添加回执行位。此外,这三个步骤都发生在目录被递归到之前(因此这与

    chmod -R a=r /foo
    chmod -R u+w /foo
    chmod -R a+X /foo
    
    因为a=r从目录中删除了x,所以chmod不能递归到目录中。)

    On 他们写道:

    如果您需要一种快速方法将公用html数据重置为755(目录)和644(文件),那么您可以使用以下方法:

    cd /home/user/domains/domain.com/public_html
    find . -type d -exec chmod 0755 {} \;
    find . -type f -exec chmod 0644 {} \;
    


    我测试并。。。它起作用了

    如果有人(@animuson)愿意向我解释,为什么这个chmod问题是离题的,而这里的所有其他问题(14438个结果)都没有……有点晚,但是这个命令也可以一次性给出公认的答案:chmod-ra=R,a+X,u+w/你的/pathGood问题,不值得结束。它们应该被移动到stackoverflow子站点,而不是关闭。@hugoderhungrige它的意思是在服务器站点上询问它,如:
    http://superuser.com
    :P但这个问题在这里帮助了我,谢谢。简短回答:对于像我这样的人来说,这不起作用,请尝试
    sudo find/your/location-type f-exec chmod 644{}用于文件和
    sudo find/your/location-type d-exec chmod 755{}
    for directories我运行了原始解决方案,它破坏了我对文件和目录的权限。小心评论上的解决方案有效,谢谢!为什么(?)tham
    chmod-ra=R,u+w,a+X/foo更好?
    ?由于
    无法执行/bin/chmod:Argument list太长而失败
    如果在指定所需位置时只希望子文件夹为chmod 755怎么办?因为这也会使父文件夹755变得小心:这些命令不会处理名称中带有空格的文件或目录。接受答案中的命令将被删除。此警告仅适用于{}没有引号的情况……因此,没有理由使用print0和xargs-0,以下内容就足够了:
    find/A-type X-exec chmod Y'{}\
    chmod-ra=R,u+w,a+X/foot他的答案虽然简洁,但确实存在一个问题:在运行命令之前可执行的文件在运行之后将是可执行的。请参阅@JohnAllsup的答案,以获取没有此缺陷的命令。@mzuther除非此问题实际上是您的功能,否则任何人都不会这样做!它会影响整个服务器!救生员!感谢您为这个问题提供了干净的解决方案!当我需要修复WordPress安装的权限问题时,它为我工作!可以很好地在目录中进行调整。太棒了!帮了我一个又简单又安全的忙
    chmod -R a=r /foo
    chmod -R u+w /foo
    chmod -R a+X /foo
    
    cd /home/user/domains/domain.com/public_html
    find . -type d -exec chmod 0755 {} \;
    find . -type f -exec chmod 0644 {} \;