协慌网

登录 贡献 社区

如何在 Linux 中一步更改文件夹及其所有子文件夹和文件的权限?

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

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

chmod 775 /opt/lampp/htdocs

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

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

我也看过这个链接:

http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal

答案

其他答案是正确的,因为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 {} \;

检查 - R 选项

chmod -R <permissionsettings> <dirname>

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

man <command name>

所以在这种情况下:

man chmod

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

chmod -R a+rX *

对于文件,将忽略X (即大写X ,不小x !)(除非它们对于某些人来说可执行),但用于目录。