我需要查找“其他”具有读取、写入或执行权限的目录中的所有文件,并且我需要将这些权限应用于“组”。
示例:如果file1
有rwxr--rw-
,这会将其更改为rwxrw-rw-
。
但如果“组”有权限但“其他”没有,我需要保持原样。
我需要在没有管道的情况下使用一个命令来实现这一点。
您有什么建议可以帮助我吗?
答案1
以提示形式,因为这是一个作业:
我们可以检查特定组和其他权限是否不同的使用以下find
语法:
\( -perm -o=PERMISSION -not -perm -g=PERMISSION \)
由于存在八种不同的可能性,因此您需要其中八种来匹配所有差异。
获得这些文件后,您可以使用它-exec COMMAND {} \;
来运行COMMAND
每个文件。
chmod
是更改权限的命令。
现在,您如何在不运行的情况下实际将权限从其他人复制到组另一个命令有点难题。
答案2
我用来解决问题的命令是:
find ./directory/ -perm /o=rwx -execdir chmod g+o {} +
再次感谢@l0b0 和@steeldriver 的帮助!