Linux/UNIX:递归更改文件权限(有条件)

时间:2020-01-09 10:40:00  来源:igfitidea点击:

如何在/home/user/demo目录中将具有777权限的文件递归更改为755?我在此目录中有许多文件,并且仅当该文件具有777权限时,才需要将权限从0777更改为。在Linux或类似Unix的系统上,有没有简便的方法可以实现这一目标?要更改文件访问权限,您需要使用chmod命令。它具有-Rrecursive选项,可以递归地更改文件和目录。 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 {} \;