web-dev-qa-db-ja.com

ファイルのchmod数値を取得する

FreeBSDおよびLinuxでは、ファイルのchmod数値を取得するにはどうすればよいですか?例えば、 644 の代わりに -rw-r--r--? Bashスクリプトの自動方法が必要です。

113
stefan.at.wpf

Stat出力形式を使用して直接値を取得できます。 BSD/OS X:

stat -f "%OLp" <file>

またはLinux

stat --format '%a' <file>

そしてbusyboxで

 stat -c '%a' <file>
173
teppic

使用する stat YOUR_FILE計算するスクリプトを書かない限り:

rwx rwx rwx ==> ( r = 4 ) if set + ( w = 2) if set + (x = 1) if set , for example:
You have :
-rw-wxrw- => (4+2+0)(0+2+1)(4+2+) = 0636 
First argument before 9 permissions is one of :
- = regular file
d =  directory
b = block device
c = character device
s = socket
p = pipe
f = fifo

ちなみに、私はstat command オン Linux boxではなくfreebsdを調査するため、HFSではなくUFSを使用します。

7
PersianGulf

stat に関する追加情報:

$ stat -c %a file.txt

777  

$ stat -c %A file.txt

-rwxrwxrwx
4
Mateen Ulhaq

すべて試してみる

stat --format "%a  %n" *
2
Hatem Badawi