25 感谢Jamesessan向我们展示g = u。在我的系统上,这似乎可行: chmod -R g=u dir — 乔伊·亚当斯(Joey Adams) source 1 这也会更改目录的权限。原始问题指定了文件。 — jamessan @jamessan,这是目录。 — Mike Graham @Mike,仅仅是因为* nix允许您将几乎所有内容都视为文件,并不意味着目录实际上是文件。即使承认它们是相同的,在更改目录树中所有文件的权限与更改目录树中所有文件和目录的权限之间也存在明显的功能差异。 — jamessan 2011年 再一次有直接的解决方案来解决我的问题。为什么我不感到惊讶? — rzetterberg
0 我想不出一种简单的方法来执行现有命令。也许这样的脚本会有所帮助: #!/bin/bash DIR="$1" find "$DIR" -ls | while read a b perm c d e f g h i file; do uperm=${perm:1:3} uperm=$(echo "$uperm" | tr -d '-') chmod g=$uperm "$file" done 另外,请记住,某些针对用户的权限可能不适用于组,反之亦然。 — phaphink source
0 我不知道这样的命令是否存在,但是使用find和调用它几次,就可以实现 您要尝试的操作,例如 例如: % find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \; 上面的命令遍历当前目录“。”,查找 对用户具有写许可权但 对组没有写许可权的所有文件,并将那里的许可权更改为组可写。 同样,您可以使用上面的变体调用来更改 组的读取和执行模式的文件权限。 — 卫星 source