2013-02-13 9 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* 

どのように私は(アウトが手動で変換を行うと)chmod 755 otherFile.shのようなchmodで使用するための番号にそれを翻訳しない:私のような何かを与えることができLS -laを使用してファイルのアクセス権を確認することができます。

+1

あなたの研究をより簡単にするノート:Mac OS XはBSD UNIXであり、この問題を解決するためのUNIXの方法もあります。 (Linuxの多くの方法と同じように) – Jesper

+0

これは素晴らしいアドバイスです。ありがとう@Jesper。 – AJP

答えて

18

stat -f "%Lp" [filename] OS X 10.8で動作します。

+0

10.7.5で動作しません – AJP

+0

10.7の 'stat'のmanページは、10.8のように動作するはずのオプションと同じように見えます。あなたはどんなエラーを出していますか? –

+1

Hmmm、それは奇妙なことですが、あなたの答えは、 'stat -c"%a%w "[filename]'のようにはうまくいかないと思いました。あなたの答えはうまくいく。 – AJP

1

lsの代わりにstatコマンドを使用できるはずです。

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

(私は現時点では私のMacではないですので、それをテストすることはできませんが):manpageを見てから、これはファイルのパーミッションを取得するために動作するはずです。

+0

@AJPは、さらに詳しいマンページの研究から、すべてのファイルパーミッションを得るためにHp、Mp、およびLpを指定する必要があると思います。私の編集を見てください。 – trojanfoe

+0

はい私の編集はちょうど私がchmodで読み込み、書き込み、実行の権限を変更するために使うことができるように '755'パーツが必要なことを示していました。しかし、あなたの答えは完全な許可を与えてくれます。 – AJP

+0

@AJP私は両方の答えが正しい方法が理解できません。あなたは 'stat -f '%Hp%Mp%Lp' **と' stat -f '%Lp' 'が同じ結果を出すと言っていますか? – trojanfoe

関連する問題