2013-02-13 55 views
11

這確實很簡單,但已經完全畫空白。UNIX/Linux/Mac OSX獲得文件權限,編號爲

-rwxr-xr-x 1 james staff 68 8 Feb 13:33 basic.sh* 
-rw-r--r-- 1 james staff 68 8 Feb 13:33 otherFile.sh* 

如何翻譯成若干爲使用chmodchmod 755 otherFile.sh(帶出來做手工轉換):我可以通過使用LS -la,可以給像看到文件的權限。

+1

請注意,這可能會使您的研究變得更加簡單:Mac OS X是BSD UNIX,任何解決該問題的UNIX方法都可以。 (如許多Linux方式) – Jesper 2013-02-13 13:14:55

+0

這是很好的建議,謝謝@Jesper。 – AJP 2013-02-13 13:50:02

回答

18

stat -f "%Lp" [filename]適用於OS X 10.8。

+0

不適用於10.7.5 – AJP 2013-02-13 14:04:13

+0

奇怪的是,10.7中'stat'的手冊頁使它看起來像這些選項應該按照他們在10.8中的方式工作。你遇到了什麼錯誤? – 2013-02-13 14:07:34

+1

嗯,這很奇怪,我以爲你的回答是這樣的:'stat -c「%a%w」[文件名]'這是行不通的。你的答案確實有效。 – AJP 2013-02-13 14:40:43

1

您應該可以使用stat命令而不是ls。從看manpage,這應該工作來獲取文件權限:

for f in dir/* 
do 
    perms=$(stat -f '0%Hp%Mp%Lp' $f) 
    echo "$f has permissions $perms" 
done 

(雖然我不是在我的Mac此刻,因此無法對其進行測試)。

+0

@AJP,從進一步研究manpage,我認爲你需要指定Hp,Mp和Lp來獲得所有的文件權限。請參閱我的編輯。 – trojanfoe 2013-02-13 14:22:34

+0

是的,我的編輯只是爲了表明我只想要'755'部分,以便我可以在chmod中使用它來更改讀取,寫入和執行的權限。但是你的答案確實給了完整的權限。 – AJP 2013-02-13 14:46:14

+0

@AJP我不明白這兩個答案可能是正確的。你是說'stat -f'%Hp%Mp%Lp'**和**'stat -f'%Lp''給出相同的結果嗎? – trojanfoe 2013-02-13 14:48:39