chgrp(change group) 在UNIX系統家族裡,檔案或目錄許可權的掌控以擁有者及所屬群組來管理。您可以使用chgrp指令去變更檔案與目錄的所屬群組,設定方式採用群組名稱或群組識別碼皆可。
變更檔案或目錄的所屬群組。
chgrp [-cfhRv][--help][--version][所屬群組][檔案或目錄...] 或 chgrp [-cfhRv][--help][--reference=<參考檔案或目錄>][--version][檔案或目錄...]
-c或--changes 效果類似"-v"參數,但僅回報更改的部分。
-f或--quiet或--silent 不顯示錯誤信息。
-h或--no-dereference 只對符號連線的檔案作修改,而不更動其他任何相關檔案。
-R或--recursive 遞歸處理,將指定目錄下的所有檔案及子目錄一併處理。
-v或--verbose 顯示指令執行過程。
--help 線上幫助。
--reference=<參考檔案或目錄> 把指定檔案或目錄的所屬群組全部設成和參考檔案或目錄的所屬群組相同。
--version 顯示版本信息。
#首先建立一個文檔,為普通用戶文檔。
[klot@localhost ~]$ echo aa>>1
[klot@localhost ~]$ ls -al 1
-rw-r--r-- 1 klot users 3 08-16 21:26 1
[klot@localhost ~]$
#su
[klot@localhost ~]$ su
口令:
[root@localhost klot]# ls -al 1
-rw-r--r-- 1 klot users 3 08-16 21:26 1
#最基本的用法
[root@localhost klot]# chgrp root 1
[root@localhost klot]# ls -al 1
-rw-r--r-- 1 klot root 3 08-16 21:26 1
[root@localhost klot]#
# -R之後可以更改目錄中的子目錄,也即使歸檔處理。我不舉例子了。很有用的參數。
[root@localhost klot]# chgrp users 1
[root@localhost klot]# ls -al 1
-rw-r--r-- 1 klot users 3 08-16 21:26 1
[root@localhost klot]# chgrp -c root 1
“1” 的所屬組已更改為 root
#以上,-c與-v類似,但是v表示無論如何也要顯示結果,c表示只有更改組之後才顯示結果。
[root@localhost klot]# ln -s ./1 ./Desktop/11
[root@localhost klot]# ls -al ./Desktop/11
lrwxrwxrwx 1 root root 3 08-16 21:39 ./Desktop/11 -> ./1
[root@localhost klot]# chgrp -h users ./Desktop/11
[root@localhost klot]# chgrp -h -v users ./Desktop/11
“./Desktop/11” 的所屬組已保留為 users
[root@localhost klot]#
#以上,ln創建了符號連線,而-h有且只有改變符號連線的用戶組,與參數 --dereference正好相反。
#-f為安靜模式,不顯示大部分錯誤信息。我不實驗了。
The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the
final one takes effect.
# 以下參數只有和-R同時使用才奏效。如果要轉換的檔案超過一個,那么只有最後一個奏效。
#-H, if a command line argument is a symbolic link to a directory, traverse it。沒明白!!
#(-H, 如果chgrp命令中的參數之一是一個目錄的符號連線,那么轉換它)
#-L,所有指向目錄的連線都會被轉換。
#-P,忽略所有符號連線(默認