在 FreeBSD 和 Linux 中,如何获取chmod
文件的数值?例如,644
而不是-rw-r--r--
?我需要一种 Bash 脚本的自动方式。
答案1
您可以使用统计输出格式直接获取值,例如
Linux:
stat --format '%a' <file>
BSD/OS X:
stat -f "%OLp" <file>
忙碌盒:
stat -c '%a' <file>
答案2
使用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+0) = 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
on Linux box
,而不是freebsd
,因为它调查HFS
可能与 一起工作UFS
。
答案3
一些附加信息stat
:
$ stat -c %a file.txt
777
$ stat -c %A file.txt
-rwxrwxrwx
答案4
使用 GNU stat
,尝试获取当前工作目录中所有非隐藏文件的值。
stat --format "%a %n" -- *