假设我有一个名为 Permissions 的目录,其中包含多个具有不同访问权限的文件。
我想要做的是,如果一个文件具有others
类别的访问权限,我想为该group
类别授予相同的访问权限。
示例1:如果 file_1 有r-x---r--
,那么我希望该文件具有权限r-xr--r--
示例2:
file_2有r-xr----x
权限,我希望它变成r-xr-x--x
示例3:
file_3和file_4分别具有rw---x---
和rwxr-----
访问权限,这些文件应保持不变
我知道find
我可以搜索此类文件然后-perm 0740
更改其值,但是如何仅搜索具有与权限不同的权限-exec chomd --- \;
的文件,并在找到时更改其 访问权限以匹配权限other
group
group
other
答案1
chmod -R g+o dir
字母组合
ugoa
控制哪些用户对文件的访问权限将被更改:[...] 文件组中的其他用户 (g)、[...]运算符 + 使选定的文件模式位添加到每个文件的现有文件模式位 [...]
这些字母
rwxXst
为受影响的用户选择文件模式位 [...] 您可以指定以下字母之一,而不是这些字母中的一个或多个ugo
:[...] 以及授予不在这两个字母中的用户的权限前面两个类别 (o)。
答案2
使用 GNUfind
和循环,您可以搜索r
w
x
未为 设定group
但为 设定的每个权限others
并将其设置为group
:
for perm in r w x; do
find . -type f \! -perm /g+"$perm" -perm /o+"$perm" -exec chmod g+"$perm" {} \;
done