2014-01-17 17 views
0

我有一個腳本這行我創建獲取一個文件的所有者,並將其應用到另一個

ls -l ../$_module.php | awk '{print $3}' 

簡單地打印出文件的所有者。是否可以將$3分配給一個變量(我們稱之爲_owner),然後我可以在該腳本創建的文件上運行 chmod $_owner $_con"Controller.php",因此$_con"Controller.php"$_module.php擁有相同的所有者?

回答

4

其實你想chown(1),而不是chmod(1)來更改所有者。而GNU chown,如果你使用的是Linux,你可能擁有一個漂亮的選項--reference=file,這將改變所有者與引用文件中的相同。


如果你堅持做手工,或你的chown沒有這個選項,你可以存儲輸出作爲變量和使用:

owner=$(some comand) 

但是注意,ls做不保證穩定的輸出,即你不應該依賴格式。 PaulProgrammer建議您可能需要使用stat

+0

這是更好的,但不是萬能(如果你發現自己在Solaris或AIX或東西...) – PaulProgrammer

+0

@duskwuff感謝編輯,完全同意。 – cnicutar

3

您真的想要chown更改所有者,並且您可以使用​​獲取所有者的用戶名。使用反引號,你可以從stat喂輸出入chown輸入:

chown `stat -c %U module.php` target.php 
相關問題