我想在 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
!)(除非它们对于某些人来说可执行),但用于目录。