




若要更改某個檔案或目錄的擁有者，可以直接使用 chown 更改：

# 將 myfile 的擁有者改為 myuser
sudo chown myuser myfile


****************************


如果要更改檔案或目錄的群組，也可以用 chown 更改：

# 將 myfile 的群組改為 mygroup
sudo chown :mygroup myfile

chown 的第一個參數若以冒號開頭，就是代表群組名稱的意思，
這一行指令就是將 myfile 這個檔案的群組改為 mygroup。

若要同時更改 myfile 的擁有者與群組，可以這樣寫：

# 同時更改擁有者與群組
sudo chown myuser:mygroup myfile

****************************


預設的狀況下，chown 在更改檔案的擁有者與群組後，
並不會輸出任何訊息（除非出現錯誤），
若要讓 chown 明確顯示更改的結果，可以加上 -v 參數：

# 輸出執行結果
sudo chown -v myuser:mygroup myfile

****************************

若不想讓 chown 輸出任何錯誤訊息，可以加上 -f 參數：

# 不輸出任何錯誤訊息
sudo chown -f myuser:mygroup myfile

****************************

遞迴更改整個目錄

如果要一次修改某個目錄下所有檔案與子目錄的擁有者與群組，
可以使用 chown 加上 -R 參數來處理：

# 遞迴更改整個目錄下的所有檔案
sudo chown -R myuser:mygroup myfolder
這樣就會把 myfolder 這個目錄以及其中所有的檔案與子目錄都改成 myuser:mygroup。

****************************

事先確認擁有者與群組
有時候我們在寫指令稿時，會使用 chown 自動更改檔案或目錄的擁有者與群組，
此時我們可以在更改擁有者與群組前，先檢查舊的檔案擁有者與群組，
確認舊的擁有者與群組屬性是正確的，才繼續更改其擁有者與群組，
如果舊的擁有者與群組屬性不符合預期，就不會進行任何變更，避免程式出錯。

chown 的 --from 參數可以指定舊的擁有者與群組，檢查無誤後才會進行變更：

# 確認舊的擁有者與群組為 root:syslog
sudo chown --from=root:syslog myuser:mygroup myfile
也可以只檢查擁有者或群組：

# 只確認舊的擁有者為 root
sudo chown --from=root myuser:mygroup myfile

# 只確認舊的群組為 syslog
sudo chown --from=:syslog myuser:mygroup myfile

****************************

參考檔案的擁有者與群組
如果我們想要把檔案的擁有者與群組改為跟另一個參考檔案一樣，
可以使用 --reference 參數：

# 將 myfile 的擁有者與群組改為跟 reffile 一樣
sudo chown --reference=reffile myfile
這樣就會把 myfile 的擁有者與群組改為跟 reffile 一樣。

實用範例
chown 指令本身的用法很單純，不過我們可以結合 Linux 上面的各種指令工具，寫出各種應用的指令稿。

結合 find 指令與 chown 指令，找出目前目錄下所有的 *.c 檔，並將這些檔案的擁有者與群組改為 myuser:mygroup：

sudo find ./ -name *.c -exec chown myuser:mygroup {} ;



















