7.2 递归修改目录属于的用户组
chgrp -R
当然,可能你不会只想修改一个文件或者目录的用户组。如果要修改目录中多个文件的用户组,可以使用通配符。如果要修改目录中所有文件及其所有子目录中文件的用户组,则可以使用-R
(或--recursive
)选项。
$ pwd
/home/scott/pictures/libby
$ ls -F
by_pool/ libby_arrowrock.jpg libby.jpg on_floor/
$ ls -lF *
-rw-r--r-- 1 scott scott ... libby_arrowrock.jpg
-rw-r--r-- 1 scott scott ... libby.jpg
by_pool/:
-rw-r--r-- 1 scott scott ... libby_by_pool_02.jpg
drwxr-xr-x 2 scott scott ... lieberman_pool
on_floor/:
-rw-r--r-- 1 scott scott ... libby_on_floor_01.jpg
-rw-r--r-- 1 scott scott ... libby_on_floor_02.jpg
$ chgrp -R family */*
$ ls -l *
-rw-r--r-- 1 scott family ... libby_arrowrock.jpg
-rw-r--r-- 1 scott family ... libby.jpg
by_pool:
-rw-r--r-- 1 scott family ... libby_by_pool_02.jpg
drwxr-xr-x 2 scott family ... lieberman_pool
on_floor:
-rw-r--r-- 1 scott family ... libby_on_floor_01.jpg
-rw-r--r-- 1 scott family ... libby_on_floor_02.jpg
警告 如果使用命令
chgrp -R family*
,并不会修改/home/scott/pictures/libby
目录中的任何点(dot)文件。然而不能使用chgrp -R family .*
命令。虽然它能够修改当前目录中的所有点文件,但.*
也和..
匹配,所以所有父目录中的文件也会被修改,或许这并不是你想要的结果。