Linux/UNIX:递归更改文件权限(有条件)
时间:2020-01-09 10:40:00 来源:igfitidea点击:
如何在/home/user/demo目录中将具有777权限的文件递归更改为755?我在此目录中有许多文件,并且仅当该文件具有777权限时,才需要将权限从0777更改为。在Linux或类似Unix的系统上,有没有简便的方法可以实现这一目标?要更改文件访问权限,您需要使用chmod命令。它具有-R
或recursive
选项,可以递归地更改文件和目录。 find命令可用于查找文件和目录。
chown命令可用于更改用户和组权限。
chmod命令示例
在此示例中,您将权限设置为0755:
$ chmod -R 0755 directoryNameHere
但是,如果需要递归地应用条件文件权限,则需要结合使用find和chmod命令。
要在/home/user/demo目录中找到所有文件,请执行:
$ find /home/user/demo -type f -print
要在/home/user/demo目录中找到所有权限为777的文件,请执行:
$ find /home/user/demo -type f -perm 777 -print
最后,使用-exec选项应用新权限,如下所示:
$ find /home/user/demo -type f -perm 777 -print -exec chmod 755 {} \;
要选择目录和子目录,请使用以下语法:
$ find /var/www/html -type d -perm 777 -print -exec chmod 755 {} \;