问:

我想在 Linux 中一步(命令)更改文件夹及其所有子文件夹和文件的权限。

我已经尝试过以下命令,但它仅适用于提到的文件夹:

chmod 775 /opt/lampp/htdocs

有没有办法为 /opt/lampp/htdocs 及其所有内容(包括子文件夹和文件)设置 chmod 755?

另外,将来如果我在 htdocs 中创建一个新文件夹或文件,如何将其权限自动设置为 755?

我也看过这个 Stack Overflow 问题:

How can I set a default ‘chmod’ in a Linux terminal?

答1:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

其他答案是正确的,因为 chmod -R 755 将为树中的所有文件和子文件夹设置这些权限。 但是你到底为什么想要?这可能对目录有意义,但为什么要在所有文件上设置执行位?

我怀疑您真正想要做的是将目录设置为 755,然后单独保留文件或将它们设置为 644。为此,您可以使用 find 命令。例如:

要将所有目录更改为 755 (drwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

要将所有文件更改为 644 (-rw-r–r–):

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

一些解释:(感谢@tobbez)

chmod 755 {} 指定 find 对每个目录执行的命令

chmod 644 {} 指定 find 对每个文件执行的命令

{} 替换为路径

;分号告诉 find 这是它应该执行的命令的结尾

;分号被转义,否则它将由 shell 解释而不是 find

有人愿意解释行末的 {} \; 是什么意思吗?

@Nilzor chmod 644 {} \; 指定 find 将为每个文件执行的命令。 {} 被文件路径替换,分号表示命令的结束(转义,否则它会被 shell 解释而不是 find)。

“但为什么要在所有文件上设置执行位” 为什么不呢?我是 Ubuntu/Linux 的新手...

@FlavorScape Womble 在 find 返回的目录上专门设置执行位。目录的执行权限允许用户类列出该目录的内容并 cd 进入该目录。一般来说,您希望目录中的 r 和 x 都可供您访问,即使可能存在奇怪的边缘情况,您只设置了一个或另一个。有关详细信息,请参阅本指南:nixsrv.com/llthw/ex23

除了 sleepynate 之外,每个回复都忽略了解决他关于未来创建的文件/文件夹权限设置的问题。

答2:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

检查 -R 选项

chmod -R

将来,您可以通过先查看手册页来节省大量时间:

man 

所以在这种情况下:

man chmod

它代表手册页,是一个 linux 命令,显示命令的手册页(大多数 linux 命令都有手册页)。试试 man ls 或 man man。

这对我在 Mac OS X 的终端中不起作用。在那里我做了“chmod -R *”并且它起作用了。

另请参阅@WombleGoneBad 下面的答案。您将希望为文件和文件夹设置不同的权限。

我认为现在在这里发帖或使用 Google 比使用 man 更快。特别是对于像 grep 这样的内容,如果您不熟悉 man,在文档中查找示例可能非常耗时,但 Google 或 SO 会在几秒钟内提供示例。

郑重声明,不熟悉 Linux 的人可能不熟悉 man。我只知道它的存在,但试图弄清楚如何使用它需要谷歌冒险本身。可能是一个值得的冒险,但你应该意识到我通过谷歌找到了这篇非常好的帖子,它回答了我所问的确切问题。资源啊朋友资源是无价的。你可能认为这是毫无意义的,他应该检查一下这个人,但这帮助了我和其他数百人(甚至数千人)。所以请考虑一下。

答3:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

如果要将所有文件的权限设置为 a+r,并将所有目录的权限设置为 a+x,并通过完整的子目录树递归地执行此操作,请使用:

chmod -R a+rX *

X(即大写 X,而不是小 x!)对于文件被忽略(除非它们已经对某人可执行)但用于目录。

很好的答案。请注意, * 不会匹配隐藏文件(以点开头的名称)。那么,使用 . (对于当前目录)。

这是正确的答案。就我而言,我想将所有目录设置为 775,将所有文件设置为 664。 @Pete 的出色回答将我带到了 chmod 文档,在那里我发现我可以使用 chmod -R g+wX .。太棒了!

这不会删除文件上的 x(如果他们已经拥有它)。

如果不完全清楚,大写 X 表示“使所有目录可执行”(但不是文件)。

@BenoitDuffez 如果您的目标是还从文件中删除可执行位,则可以组合指令,例如“a-x+rX”以从所有内容中删除“x”,然后将“r”设置为所有内容,将“x”设置为仅目录.

答4:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

您可以将 -R 与 chmod 一起使用,以递归遍历所有文件和子文件夹。

您可能需要 sudo,因为它取决于当前用户或其他用户安装的 LAMP:

sudo chmod -R 755 /opt/lampp/htdocs

不知何故,sudo chmod 755 -R /directory 不起作用,但 sudo chmod -R 755 /directory 起作用了。诡异的。顺便说一句,我正在使用 Mac os x。

这在我的经验中是正确的。该标志必须直接出现在 chmod 之后,而不是字符串中的任何位置。

上面写的命令是错误的。正确的递归命令是:sudo chmod -R 755 /opt/lampp/htdocs 注意:-R 应该在 755 之前

应该被编辑,在没有迂腐语法的 mac osx 上不起作用。

OSX USSING: sudo chmod 777 logs/ -R GETTING: chmod: -R: No such file or directory 应该是: sudo chmod -R 777 logs/

答5:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

正确的递归命令是:

sudo chmod -R 755 /opt/lampp/htdocs

-R:更改每个子文件夹,包括当前文件夹

嗨,尽管有路径,您确定当前文件夹是一个吗?

OSX 使用:sudo chmod 777 logs/ -R GETTING:chmod:-R:没有这样的文件或目录应该是:sudo chmod -R 777 logs/

答6:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

要设置为所有子文件夹(递归),请使用 -R

chmod 755 /folder -R

并使用 umask 将默认设置为新文件夹/文件 cd /folder umask 755

不要将您的 umask 设置为 755!您将无法列出、读取或使用您创建的任何文件或目录!

这将所有设置为 755,包括文件。!

@sleepynate 你到底在说什么? 755 表示所有者可以读、写和执行,所有其他用户可以读和执行,但不能写入对象

@NicHartley @svin83 umask 是将从权限中屏蔽掉的位,因此它实际上是 chmod 的倒数。 λ ~ → umask 022 λ ~ → umask -S u=rwx,g=rx,o=rx λ ~ → umask 755 λ ~ → umask -S u=,g=w,o=w

应该不需要删除(这就是修订历史的目的)。答案应该看起来好像是今天写的。

答7:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

chmod 755 -R /opt/lampp/htdocs 将递归设置权限。无法仅在设置权限后创建的此目录中自动设置文件的权限,但您可以通过设置 umask 022 更改系统范围的默认文件权限。

sleepynate 的答案是唯一正确的答案。发帖人问了两个问题:1)如何修复文件和文件夹的权限,以及 2)如何更改默认值(意思是“未来”文件)。正如 nate 所说,第一个是“chmod”,第二个是“umask”。我还要补充一点,没有办法仅在 1 个目录上更改 umask ...... umask 是每个用户的“全有或全无”。然而,没有什么能阻止你创建一个与你共享组的新用户,这样你就可以“sudo -u someuser [create file]”。这有点跳出框框思考,但这是一个很好的解决方法。

我认为您是对的,但是 inherit 不能成为许多情况的解决方案,还是仅适用于 NTFS-3G?

将来可能会在未授予文件夹权限的情况下创建文件夹,例如 myforlder 从其他地方(如 PC)复制到此目标目录(在服务器上),因为它会尝试创建一个目标目录中名称为 myfolder 的新文件夹,您没有这样做的权限。因为我有 root,所以我只使用 chown -R username:usergroup /directory。

答8:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

您可能需要考虑 Super User 上的 this answer given by nik 并对所有文件/文件夹使用“一个 chmod”,如下所示:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

警告,很容易遇到命令行限制。

我有这个错误:-bash: /bin/chmod: Argument list too long

最好使用 find 的 -exec 选项来克服 Argument list too long 错误。

相关:Change all folder permissions with one command 在 U & L.

同意@miravalls——找到。 -type d -exec chmod 755 {} \;&& 查找。 -type f -exec chmod 644 {} \;

答9:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

这是将目录设置为 775 并将文件设置为 664 的另一种方法。

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

它可能看起来很长,但它非常酷,原因有以下三个:

只扫描文件系统一次而不是两次。更好地控制文件的处理方式与目录的处理方式。这在使用特殊模式(例如粘性位)时很有用,您可能希望将其应用于目录而不是文件。直接使用手册页中的技术(见下文)。

请注意,我尚未确认此解决方案与仅使用两个 find 命令(如 Peter Mortensen 的解决方案)之间的性能差异(如果有的话)。然而,在手册中看到一个类似的例子是令人鼓舞的。

man find 页面中的示例:

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)Traverse the filesystem just once, listing setuid files and direct‐
tories into /root/suid.txt and large files into /root/big.txt.

干杯

现在,如何将其转换为 shell 脚本以便我们可以运行 openmod $folder ?

各位,请使用 xargs。它节省了数千个进程调用。

{} + 可以用 find 做与 xargs 通常做的事情相同的事情。

答10:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

利用:

sudo chmod 755 -R /whatever/your/directory/is

但是,请注意这一点。如果您更改了错误文件/文件夹的权限,这真的会伤害您。

答11:

huntsbot.com – 高效赚钱,自由工作

chmod -R 755 directory_name 有效,但您如何将新文件也保留到 755?文件的权限成为默认权限。

我做到了,但无法从那里打开终端。我无法修复它。

原文链接:https://www.huntsbot.com/qa/YlVe/how-to-change-permissions-for-a-folder-and-its-subfolders-files-in-one-step?lang=zh_CN&from=csdn

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

如何一步更改文件夹及其子文件夹/文件的权限相关推荐

  1. linux递归赋权限,Linux下递归更改文件夹和子文件夹的权限

    为所有Web应用程序设置适当的文件权限都是Web主机的重要组成部分.在本教程中,您将了解如何在单个命令中递归地更改文件夹和子文件夹上的文件权限. 如您所知,在Linux中,所有内容都被视为一个文件.一 ...

  2. redhat 复制文件夹及子文件夹_python文件夹怎么操作呢??(建议详读)

    当前工作目录 >>> import os >>> os.getcwd() 我电脑上的结果为: 'C:Users我的电脑AppDataLocalProgramsPyt ...

  3. 遍历文件夹(含子文件夹)方法

    做法基本上有2大类: ① 经典Dir ② FSO 即 Scripting. File System Object 的[文件系统对象]脚本方法. 一开始可能Dir方法较为普遍,但随着水平的提高,应用FS ...

  4. 复制当前目录所有文件夹及其子文件夹下的*.jpg文件到store文件夹下

    1.复制当前目录所有文件夹及其子文件夹下的.jpg文件到store文件夹下 2.不论多少层目录结构都可以 3.更改文件后缀名.jpg为其它后缀名的文件同样适用 #!/bin/bash # yikai ...

  5. Linux C 读取文件夹下所有文件(包括子文件夹)的文件名

    本文:http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C  下面读取文件夹要用到结构体struct dirent,在头#include ...

  6. c++利用windows api遍历指定文件夹及其子文件夹中的文件

    以下代码在vs2008中测试通过,利用FindFirstFile,FindNextFile函数遍历了我电脑上全路径为"C:\\Users\\v_tianboli\\Desktop\\wind ...

  7. java ftp遍历所有子文件_Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date2014年12月12日下午2:33:49 * @pa ...

  8. 获取文件夹以及子文件夹里面的所有文件

    1. 没有后缀名的限制: string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 2. 有后缀名: string[] file ...

  9. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

  10. linux 修改文件夹和子文件夹权限,Linux下设置文件夹以及子文件夹中所有文件权限...

    0x00 前言 文章中的文字可能存在语法错误以及标点错误,请谅解: 如果在文章中发现代码错误或其它问题请告知,感谢! 0x01 方法 设置文件夹及子文件夹下所有文件的读.写.可执行权限: [root@ ...

最新文章

  1. SQL优化:使用explain
  2. MongoDB基本命令总结
  3. Consider static factory methods instead of constructor
  4. [Windows沙拉]调整Windows7下时间同步的频率
  5. Metal之Shading Language Specification(着色语言规范)
  6. php spider shell,ScrapyShell使用
  7. Android apk 系统签名
  8. Python - PyMuPDF (fitz) 处理 PDF
  9. Web前端学习笔记(十四)---加载动画(旋转方块)
  10. 机械臂D-H坐标系的建立
  11. 大数据工程师技术栈探讨
  12. CSR867x — 说说蓝牙音频常用的编解码格式
  13. netty 多线程用一个长连接(channel) 发送消息 并发安全吗?
  14. HTML常见的处理文本的标签,比如说加粗啦、斜体啦等等等。。。
  15. linux netstat命令:网络状态查看命令
  16. python:批量处理txt文件,读取txt文件内容,根据内容(例子为数字1)提取出对应txt文件到其他文件夹,后根据txt文件名提取对应名字图片。
  17. 操作系统之进程状态及进程状态切换 (六) --- 创建态、就绪态、运行态、阻塞态、终止态。
  18. Python 中的简单算术计算
  19. Flutter应用使用插件报错问题
  20. 游戏服务器压力测试总结

热门文章

  1. PostgreSQL数据库分区裁剪——predicate_refuted_by_recurse
  2. python学习的第二十五天:对PDF文件的读写操作
  3. 4链提币接口通道源码
  4. 建设网站多语言版本,费用如何计算?
  5. N - Wires(dfs 图论 离散化)
  6. Cocos2d-x单机游戏防八门神器修改数据
  7. 2014深圳锐明视讯校园招聘 [李园7舍_404]
  8. JSTL标签与EL表达式xaing
  9. 很不错的国产指针表-MF63
  10. OSError: [WinError 126] 找不到指定的模块。 Error loading “G:\anaconda\lib\site-packages\torch\lib\caffe2_dete