获取文件的 chmod 数值

ste*_*wpf 138 linux freebsd chmod

在 FreeBSD 和 Linux 中,如何获取chmod文件的数值?例如,644而不是-rw-r--r--? 我需要一个 Bash 脚本的自动方式。

tep*_*pic 212

您可以使用 stat 输出格式直接获取值,例如 BSD/OS X:

stat -f "%OLp" <file>
Run Code Online (Sandbox Code Playgroud)

或在 Linux 中

stat --format '%a' <file>
Run Code Online (Sandbox Code Playgroud)

在忙碌的盒子里

 stat -c '%a' <file>
Run Code Online (Sandbox Code Playgroud)

  • 不需要单引号,`--format`可以缩写为`-c`。这有效:`stat -c %a &lt;file&gt;` (2认同)

Per*_*ulf 11

使用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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我使用stat commandon Linux box,而不是freebsd,因为它调查HFS可能与UFS.


Mat*_*haq 7

一些附加信息stat

$ stat -c %a file.txt

777  

$ stat -c %A file.txt

-rwxrwxrwx
Run Code Online (Sandbox Code Playgroud)


小智 5

使用 GNU stat,尝试获取当前工作目录中所有非隐藏文件的值。

stat --format "%a  %n" -- *
Run Code Online (Sandbox Code Playgroud)