Linux中chgrp命令的5个实际示例

让我们看看如何通过这些有用的示例使用chgrp命令。

1.更改一组文件/目录

这是chgrp的最简单且也许是最明显的用法。 要更改文件或目录的组所有权,可以使用chgrp命令,如下所示:

chgrp

您也可以同时更改多个文件的组:

chgrp

您无需与文件位于同一目录。 您也可以指定绝对或相对路径。

您当前的特权很重要。 如果尝试将组更改为admin或root,则可能需要超级用户特权。 在这种情况下,您应该看到“不允许操作”错误。

提示chgrp支持选项卡。 只需输入几个字母作为组名,然后单击选项卡即可查看哪些组存在这些字母。

2.递归使用chgrp更改所有文件和子目录的组

默认情况下,如果对目录使用chgrp命令,它将仅更改目录的组。 文件和子目录保持不变。

如果要更改目录和子目录中所有文件的组,可以使用递归选项-R。

chgrp -R

3.知道您是否成功更改了组

您可以使用“ ls -l”命令确定是否更改了组。 但是,如果使用上一节中看到的递归选项将组同时更改为多个文件,该怎么办?

chgrp命令提供了一种详细模式,可告诉您chgrp命令执行了哪些操作。 您可以使用-v选项在详细模式下运行chgrp命令。

chgrp -vR abhishek samplechanged group of 'sample/andreyex.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.将组的所有权更改为与文件链接相同的所有权

假设您要以与文件B相同的方式更改文件A的组。您将如何执行此操作? 您可以找到文件组B,然后将chgrp命令与文件B的组名一起使用。

好吧,这是做到这一点的一种方法。 但是,chgrp命令提供了一种专用方法,可基于引用的文件来更改组,而不是显式使用组名。

chgrp --reference=

如果您正在编写需要更改文件所有者作为对文件的引用的脚本,则此功能特别有用。

5.将chgrp与符号链接一起使用

默认情况下,如果将chgrp命令与符号链接一起使用,则这是引用文件的组所有者,当符号链接组保持原样时,该文件所有者会更改。

例如,这是链接及其关联文件的状态:

ls -l andreyex.txt link.txt 
-r--r--rw- 1 abhishek abhishek 457 Aug 20 10:26 andreyex.txt
lrwxrwxrwx 1 abhishek abhishek  10 Aug 21 11:35 link.txt -> andreyex.txt

现在,如果您像这样更改符号链接的组:

chgrp sudo link.txt

更改引用文件的组时,符号链接的组将保持不变。

ls -l andreyex.txt link.txt 
-r--r--rw- 1 abhishek sudo     457 Aug 20 10:26 andreyex.txt
lrwxrwxrwx 1 abhishek abhishek  10 Aug 21 11:35 link.txt -> andreyex.txt

如果只想更改符号链接的组所有权,而不要更改引用文件本身的所有权,则可以使用-h选项。

chgrp -h sudo link.txt

但是,我们不会建议这样做,因为在Linux上,连接权限没有意义。 这个文件很重要。

可以使用chown更改组时为什么使用chgrp?

您也可以使用chown命令来更改文件组,但是用chown命令仅更改文件组是不标准的。 chgrp命令非常简单,建议您使用chgrp命令更改一组文件或目录。

希望您喜欢chgrp命令示例。 如果您有任何疑问或建议,或者只是谢谢您,请使用下面的评论框。

Sidebar