在FreeBSD和Linux中,如何获取chmod
文件的数值?例如,644
代替-rw-r--r--
?我需要一种Bash脚本的自动方式。
在FreeBSD和Linux中,如何获取chmod
文件的数值?例如,644
代替-rw-r--r--
?我需要一种Bash脚本的自动方式。
Answers:
您可以使用stat输出格式直接获取值,例如BSD / OS X:
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个数字。
试试这个列出所有
stat --format "%a %n" *