Linux chgrp ( change group ) 用于修改文件或目录的所属组。

chgrp 命令的定义解释

在 Linux 或 FreeBSD 系统中,chgrp ( change group ) 用于修改文件或目录的所属组,修改文件的所属组时需要指定组;只要用户是该组的成员,就可以使用 chgrp 命令修改文件所属的组,chgrp 命令一次可以修改多个文件的所属组。

chgrp 命令语法

chgrp [选项]... 组 文件...
chgrp [选项]... --reference=参考文件 文件...
  • [选项]:选项带着中括号 [] 表示可选,使用时可以提供,也可以不提供。
  • 组和文件必须提供

chgrp 命令使用示例

chgrp 的所有命令都可以使用 sudo 命令执行。

更改单个的文件所属组

把当前目录下 file1.txt 文件的组更改为 ugroup 组:

chgrp ugroup file1.txt

更改多个的文件所属组

把当前目录下 file1.txt file2.txt file3.txt 文件的组更改为 ugroup 组:

chgrp ugroup file1.txt file2.txt file3.txt

更改目录及其所有文件的所属组

修改目录及其内部所有文件的所属组,需要使用 -R 参数:

chgrp -R ugroup ./dic1

解释:把当前目录下 dic1 目录及其所有文件的组更改为 ugroup 组。

更改为参考文件的组

该方式访问一个文件,获取该文件的组作为要设置的组,需要使用 --reference= 参数指定文件:

chgrp --reference=source_file.txt dest_file.txt

解释:把 dest_file.txt 的组设置为 source_file.txt 文件的组

chgrp 命令选项解释

如下给出了 Linux chgrp 命令中所有选项的解释说明:

选项 解释说明
-c, --changes 类似 -v, --verbose 参数, 但只在发生变化时才会输出信息
-f, --silent, --quiet 隐藏大多数错误信息
-v, --verbose 对于处理的每个文件,都输出处理的详细信息
--dereference (默认设置)更改每个符号链接所引用的文件的组, 而不是符号链接本身的
-h, --no-dereference 更改每个符号链接本身的组,而不是所引用的文件的
--no-preserve-root (默认设置)不对 '/' 特殊处理
--preserve-root 不允许递归修改根目录 '/' 下所有文件组
-R, --recursive 递归的修改目录下所有文件的组
--help 显示帮助信息后退出
--version 显示版本信息后退出

注意:当指定了 -R 选项时, 下面的几个选项会修改遍历目录的方式。 如果指定了以下多个选项, 只有最后一个选项才会生效。

指定 -R 时的附加选项 解释说明
-H 如果命令行参数是一个指向目录的符号链接, 则遍历该目录
-L 遍历目录中的每一个符号链接
-P (默认设置)不遍历任何一个符号链接

结语

在本教程中我们介绍了如何使用 chgrp ( change group ) 用于修改文件或目录的所属组,修改文件的所属组时需要指定需要更改的组;当前用户只要是该组的成员,就可以使用 chgrp 命令修改文件所属的组,chgrp 命令一次可以修改多个文件的所属组,同时也可以修改目录的组。

该 chgrp 命令可以在 Linux 系统中使用,也可以在 FreeBSD 系统中使用。