7.3 使用chgrp命令查看文件用户组的变化
chgrp –v
chgrp -c
或许你已注意到chgrp
命令与所有行为良好的Linux应用程序一样,只有在出现问题时才提供反馈信息。如果程序运行正常,正确地完成了任务,它不会向你提示任何类似“喂!我完成了,一切正常!”这样的信息。只有当出现了需要解决的问题时,Linux命令行应用程序才会显示提示信息。
如果你想知道chgrp
命令运行过程中发生了什么,可以先试试-v
(或--verbose
)选项。它可以告诉你chgrp
命令在每一步中执行了什么任务。
$ ls -lF
drwxr-xr-x 4 scott scott ... by_pool/
-rw-r--r-- 1 scott scott ... libby_arrowrock.jpg
-rw-r--r-- 1 scott family ... libby.jpg
-rw-r--r-- 1 scott scott ... libby_on_couch.jpg
drwxr-xr-x 2 scott scott ... on_floor/
$ chgrp -v family *
changed group of 'by_pool' to family
changed group of 'libby_arrowrock.jpg' to family
group of 'libby.jpg' retained as family
changed group of 'libby_on_couch.jpg' to family
changed group of 'on_floor' to family
$ ls -lF
drwxr-xr-x 4 scott family ... by_pool/
-rw-r--r-- 1 scott family ... libby_arrowrock.jpg
-rw-r--r-- 1 scott family ... libby.jpg
-rw-r--r-- 1 scott family ... libby_on_couch.jpg
drwxr-xr-x 2 scott family ... on_floor/
注意,这个例子中发生的事情。libby.jpg
文件已经成为family用户组的一员了,但是-v
选项继续报告提示信息,确保用户知道libby.jpg
的用户组已经是family
。如果你正在修改某个用户组,可能不需要知道原来已经属于这个用户组的内容。在这种情况下,则需要使用-c
(或--changes
)选项,毫无疑问,它只会显示修改过的内容。
$ ls -lF
drwxr-xr-x 4 scott scott ... by_pool/
-rw-r--r-- 1 scott scott ... libby_arrowrock.jpg
-rw-r--r-- 1 scott family ... libby.jpg
-rw-r--r-- 1 scott scott ... libby_on_couch.jpg
drwxr-xr-x 2 scott scott ... on_floor/
$ chgrp -c family *
changed group of 'by_pool' to family
changed group of 'libby_arrowrock.jpg' to family
changed group of 'libby_on_couch.jpg' to family
changed group of 'on_floor' to family
$ ls -lF
drwxr-xr-x 4 scott family ... by_pool/
-rw-r--r-- 1 scott family ... libby_arrowrock.jpg
-rw-r--r-- 1 scott family ... libby.jpg
-rw-r--r-- 1 scott family ... libby_on_couch.jpg
drwxr-xr-x 2 scott family ... on_floor/
这一次不会显示关于libby.jpg
的信息,因为它早已属于family
用户组了。所以,如果你想得到完整的显示,甚至包括没有修改过的文件,就应该使用-v
选项;如果你想得到简洁点儿的显示,就应该使用-c
选项。