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


100

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

回答:


159

BSD / OS Xなどのstat出力形式を使用して、値を直接取得できます。

stat -f "%OLp" <file>

またはLinux

stat --format '%a' <file>

そしてbusyboxで

 stat -c '%a' <file>

おかげで、それが最初のものであり、最も簡単なものであると思われるため、回答として選択しました:-) @seg_fault:stat -x YOUR_FILEは、単なるモード値以上のものを与えてくれます。
-stefan.at.wpf

5
busybox使用stat -c '%a' <file>
スチュアートCardall

1
単一引用符は不要であり、--format省略できます-c。これは動作します:stat -c %a <file>
なぜジョニー

:%のOLP:「のファイルシステム情報を読み取ることはできませんSTAT 『』そのようなファイルまたはディレクトリ」私は、そうでない場合はUbuntuの上のbusyboxの答えを、必要に応じて
tofutim

7

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 commandLinux boxではなく、freebsdそれは調査するので、HFSおそらくと連携しますUFS


はい、私はそれを見つけたの下でFreeBSD box、使用stat -x YOUR_FILEの下でFreeBSD box
ペルシア湾

stat -r YOUR_FILE |awk '{print $3}' あなたの許可を与えます。
ペルシャ湾

フレンドリーを表示するコマンド?666 またはコードのような数字だけでなく、-rw-wxrw- 各許可に関する説明を含むテキスト。
ピータークラウス

@PeterKrauss、awk数値結果を取得するためにを書く方が良いです。
ペルシャ湾

@PersianGulfに感謝します。ハム...いいえ、プラグアンドプレイしない標準的な方法....
ピーター・クラウス


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.