7 位八进制格式的文件模式

Alo*_*dal 1 rpm files

rpm --dump 将以 7 位八进制格式打印文件模式:

$ rpm -q --dump rpm | grep -E '/usr/bin/rpmdb|/var/lib/rpm ' | cut -d' ' -f1,5
/usr/bin/rpmdb 0100755
/var/lib/rpm 040755
$
Run Code Online (Sandbox Code Playgroud)

所有这些数字是什么意思?我想其中一些与文件类型有关,但是如果我有现有文件和标准命令行工具(+ perl/python 等,如有必要),我可以重现相同的字符串吗?

我查看了 rpm(1),它没有显示任何内容(只调用字段“mode”)和 stat(1),它只提到了通常的 4 位模式。我得到的最接近的是关于 AIX 上的 6 位格式的另一个问题

编辑:我只是注意到它有时是 6 位数字;不过,问题基本相同。

Nic*_*ckD 6

这是结构的st_mode字段stat:它对文件类型和模式位进行编码。在 linux 系统上执行man 2 stat(或可能man 7 inode)并搜索标题为“文件类型和模式”的部分。例如,0100755 表示“模式为 755 的常规文件”,而 040755 表示“模式为 755 的目录”。

顺便说一句,前导 0 表示“八进制”,因为这些值在头文件中如此指定。位数无关紧要:它只是包含完整值所需要的。