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
$
所有这些数字是什么意思?我想其中一些与文件类型有关,但是鉴于我有现有文件和标准命令行工具(+ perl/python 等,如果需要),我可以重现相同的字符串吗?
我查看了 rpm(1),它没有透露任何内容(只调用字段“模式”),以及 stat(1),它只提到通常的 4 位模式。我最接近的是另一个关于 AIX 上的 6 位数字格式的问题。
编辑:我刚刚注意到有时是 6 位数字;不过,问题基本保持不变。
答案1
这是结构st_mode
的字段stat
:它对文件类型和模式位进行编码。在 Linux 系统上执行man 2 stat
(或者可能man 7 inode
)并搜索标题为“文件类型和模式”的部分。例如,0100755 表示“模式为 755 的常规文件”,040755 表示“模式为 755 的目录”。
顺便说一句,前导 0 表示“八进制”,因为这些值是在头文件中指定的。位数无关紧要:它只是包含完整值所需的位数。