chgrp
可變更文件或目錄群組的命令
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 顯示版本信息。
========測試環境: Fedora Core 6.0;內核:2.6.18========
#首先建立一個文檔,為普通用戶文檔。
[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,忽略所有符號連接(默認