FreeBSDでもLinuxでもchmod
、ファイルの数値を取得するにはどうすればよいですか?たとえば644
、-rw-r--r--
?Bashスクリプトの自動方法が必要です。
FreeBSDでもLinuxでもchmod
、ファイルの数値を取得するにはどうすればよいですか?たとえば644
、-rw-r--r--
?Bashスクリプトの自動方法が必要です。
回答:
BSD / OS Xなどのstat出力形式を使用して、値を直接取得できます。
stat -f "%OLp" <file>
またはLinux
stat --format '%a' <file>
そしてbusyboxで
stat -c '%a' <file>
busybox
使用stat -c '%a' <file>
--format
省略できます-c
。これは動作します:stat -c %a <file>
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
。
FreeBSD box
、使用stat -x YOUR_FILE
の下でFreeBSD box
stat -r YOUR_FILE |awk '{print $3}'
あなたの許可を与えます。
666
またはコードのような数字だけでなく、-rw-wxrw-
各許可に関する説明を含むテキスト。
awk
数値結果を取得するためにを書く方が良いです。
以下に関する追加情報stat
:
$ stat -c %a file.txt
777
$ stat -c %A file.txt
-rwxrwxrwx
stat -f %A file.txt
macの下にあり、644または他の3デジタル番号を返します。