7.2 递归修改目录属于的用户组

chgrp -R

当然,可能你不会只想修改一个文件或者目录的用户组。如果要修改目录中多个文件的用户组,可以使用通配符。如果要修改目录中所有文件及其所有子目录中文件的用户组,则可以使用-R(或--recursive)选项。

  1. $ pwd
  2. /home/scott/pictures/libby
  3. $ ls -F
  4. by_pool/ libby_arrowrock.jpg libby.jpg on_floor/
  5. $ ls -lF *
  6. -rw-r--r-- 1 scott scott ... libby_arrowrock.jpg
  7. -rw-r--r-- 1 scott scott ... libby.jpg
  8. by_pool/:
  9. -rw-r--r-- 1 scott scott ... libby_by_pool_02.jpg
  10. drwxr-xr-x 2 scott scott ... lieberman_pool
  11. on_floor/:
  12. -rw-r--r-- 1 scott scott ... libby_on_floor_01.jpg
  13. -rw-r--r-- 1 scott scott ... libby_on_floor_02.jpg
  14. $ chgrp -R family */*
  15. $ ls -l *
  16. -rw-r--r-- 1 scott family ... libby_arrowrock.jpg
  17. -rw-r--r-- 1 scott family ... libby.jpg
  18. by_pool:
  19. -rw-r--r-- 1 scott family ... libby_by_pool_02.jpg
  20. drwxr-xr-x 2 scott family ... lieberman_pool
  21. on_floor:
  22. -rw-r--r-- 1 scott family ... libby_on_floor_01.jpg
  23. -rw-r--r-- 1 scott family ... libby_on_floor_02.jpg

警告 如果使用命令chgrp -R family*,并不会修改/home/scott/pictures/libby目录中的任何点(dot)文件。然而不能使用chgrp -R family .*命令。虽然它能够修改当前目录中的所有点文件,但.*也和..匹配,所以所有父目录中的文件也会被修改,或许这并不是你想要的结果。