「chgrp(1)」-

修改文件的所属组

命令语法格式

chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…

命令描述

将文件FILE的所属组修改为GROUP。GROUP既可以是组名,也可以是组ID,或者是某个文件的组(使用–reference选项时)。使用–reference时,可以将文件FILE的所属组修改为与RFILE相同的组。

如果GROUP是一个数值型的组ID,可以添加前导的加号(“+”)来将其与组名进行区别。参考文献如何区分名与ID

用户是否可以该文件所属组更改为任意一个其他组依赖于系统,或者更便携的做法是限制为设置成用户所属的组。

命令支持的选项及含义

–help
显示帮助信息并退出。

–version
显示版本信息并退出。

-v, –verbose
为每个被处理的文件FILE输出一个诊断信息。如果在没有使用lchown(2)系统调用的系统上进行递归遍历时遇到符号链接,并且–no-dereference已生效,则chgrp会发出一条诊断消息来说明符号链接及其引用对象都未被更改。

-c, –changes
类似于-v选项,但是只有文件的所有组实际发生变化的时候才产生日志。如果将文件FILE从staff组修改为staff组,前后没有发生实际的变化,就不会有诊断信息产生。

-f, –silent, –quiet
在文件所属组无法修改时,不产生错误信息。

–dereference
不要去修改符号链接所属的组,而是修改符号链接所指向的文件的组。这是默认的行为。

-h, –no-dereference
修改符号链接所属的组,而不是修改符号链接所指向的文件的组。这种模式依赖于lchown(2)系统调用。在不提供lchown(2)系统调用的系统上,当命令行中指定的文件是符号链接时,chgrp会失败。默认情况下,对递归遍历期间遇到的符号链接不产生诊断信息,但请参阅–verbose选项。

–no-preserve-root
不对根目录进行保护,这是默认行为。与–preserve-root选项的作用相反。参考特别对待根目录

–preserve-root
根目录保护。尝试在根目录(/)上递归更改时会失败。没有–recursive选项时,该选项不会有效果。参考特别对待根目录

–reference=RFILE
将每个文件的组更改为与RFILE相同的组。如果RFILE是符号链接,则会使用符号连接所引用的文件的组。

-R, –recursive
递归修改目录及子目录中所有对象的所属组。

当使用了-R选项时,下面的选项修改如何遍历目录结构。如果指定了多个选项,只有最后一个才会生效:

-H
如果命令行参数是一个指向目录的符号链接,遍历它。参考对待符号链接

-L
遍历遇到的所有指向目录的符号链接。参考对待符号链接

-P
不遍历任何符号链接。参考对待符号链接

使用示例

将根目录下的u的所属组修改为staff:

# chgrp staff /u

将目录u及其子目录的所属组修改为staff:

# chgrp -hR staff /u

相关手册

chown(1), chown(2)

查看在线手册:http://www.gnu.org/software/coreutils/chgrp

查看info手册:info ‘(coreutils) chgrp invocation’

参考文献

  • man 1 chgrp, verison GNU coreutils 8.26

更新日志

  • 06/09/2018 创建文章。今天周六,每天都有那么几件必须要做的事情。