一尘不染

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

linux

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

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

chmod 775 /opt/lampp/htdocs

有没有办法设置它chmod 755/opt/lampp/htdocs所有内容,包括子文件夹和文件?

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


阅读 264

收藏
2022-02-12

共2个答案

一尘不染

,因为这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 {} \;

一些解释:

  • chmod 755 {}指定find对每个目录执行的命令
  • chmod 644 {}指定find对每个文件执行的命令
  • {}被路径替换
  • ;分号告诉find这是它应该执行的命令的结尾
  • \;分号被escaped,否则它将由 shell 解释而不是find
2022-02-12
一尘不染

检查 -R 选项

chmod -R <permissionsettings> <dirname>

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

man <command name>

所以在这种情况下:

man chmod
2022-02-12