Linux 中的 chgrp 命令是什么?
如果您使用我们的 chmod 计算器,您就会知道 Linux 中的文件权限,您可能知道组所有权。
chgrp 命令 在 Linux 中用于更改文件或目录的组。 它代表“更改组”。
chgrp 命令的语法是:
chgrp [options] groupname file
5 Linux中chgrp命令的实例
让我们看看如何通过这些有用的示例来使用 chgrp 命令。
1.更改文件/目录组
这是 chgrp 最简单,也许也是最突出的用法。 要更改文件或目录的组所有权,可以按以下方式使用 chgrp 命令:
chgrp group_name file_name
您还可以一次更改多个文件的组:
chgrp group_name file1 file2 file3
您不必与文件位于同一目录中。 您也可以提供绝对或相对路径。
您当前的特权很重要。 如果您尝试将组更改为 admin 或 root,您可能需要超级用户权限。 在这种情况下,您应该会看到“不允许操作”错误。
提示: chgrp 支持制表符补全。 只需为组名输入几个字母,然后点击选项卡即可查看这些字母存在哪些组。
2.递归使用chgrp更改组所有文件和子目录
默认情况下,如果对目录使用 chgrp,它只会更改目录的组。 文件和子目录保持不变。
如果要更改目录和子目录中所有文件的组,可以使用递归选项 -R。
chgrp -R group_name path_to_directory
3. 知道你是否设法改变了组
您可以使用“ls -l”命令确定组是否已更改。 但是,如果您像使用上一节中看到的递归选项一样一次更改多个文件的组怎么办?
chgrp 提供了一种详细模式,可以告诉您 chgrp 命令执行了哪些操作。 您可以使用选项 -v 以详细模式运行 chgrp 命令。
chgrp -vR abhishek samplechanged group of 'sample/agatha.txt' from sudo to abhishek
group of 'sample/a.text' retained as abhishek
changed group of 'sample/text/sherlock.txt' from sudo to abhishek
changed group of 'sample/text' from sudo to abhishek
changed group of 'sample' from sudo to abhishek
您可能会注意到,详细模式还可以判断文件组是否保持不变。 如果您只想查看组所有权实际发生更改的文件的此信息,则可以使用选项 -c。
提示:您可以使用 chgrp 为命令(在 bin 或 init 中)赋予执行权限,或者让属于特定组的所有用户(而不是 root)可以执行该命令。
4.更改组所有权与参考文件相同
想象一下,您想将文件 A 的组更改为与文件 B 相同。您将如何做到这一点? 您可以查找文件 B 的组,然后将 chgrp 命令与文件 B 的组名一起使用。
嗯,这是一种方法。 但是,chgrp 提供了一种基于参考文件更改组的专用方法,而不是显式使用组的名称。
chgrp --reference=file2 file1
如果您正在编写一个需要将文件的组所有者更改为参考文件的脚本,这将特别有用。
5. 使用带有符号链接的 chgrp
默认情况下,如果您使用带有符号链接的 chgrp 命令,则会更改引用文件的组所有者,而符号链接组保持不变。
为了 example,这是链接及其引用文件的状态:
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek abhishek 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
现在,如果您像这样更改符号链接的组:
chgrp sudo link.txt
符号链接的组将保持不变,而引用文件的组将被更改。
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek sudo 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
如果您只想更改符号链接的组所有权而不是引用文件本身,则可以使用 -h 选项。
chgrp -h sudo link.txt
但是,我不建议这样做,因为在 Linux 中,链接权限没有意义。 引用的文件在这里很重要。
当您可以使用 chown 更改组时,为什么还要使用 chgrp?
您也可以使用 chown 命令更改文件的组,但通过 chown 命令仅更改组是不标准的。 此外,出于此目的使用 chown 可能会造成混淆。 chgrp 非常简单,建议使用 chgrp 命令来更改文件或目录的组。
我希望你喜欢 chgrp 命令示例。 如果您有任何问题或建议或简单的感谢,请使用下面的评论框。