修改文件的所属组
命令语法格式
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:
将目录u及其子目录的所属组修改为staff:
相关手册
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 创建文章。今天周六,每天都有那么几件必须要做的事情。