Linux

獲取文件的 chmod 數值

  • May 23, 2021

在 FreeBSD 和 Linux 中,如何獲取chmod文件的數值?例如,644而不是-rw-r--r--? 我需要一種 Bash 腳本的自動方式。

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

stat -f "%OLp" <file>

或在 Linux 中

stat --format '%a' <file>

在busybox中

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+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 commandon Linux box,不是freebsd,因為它調查HFS可能與UFS.

引用自:https://unix.stackexchange.com/questions/46915