为什么 Midnight Commander 中的 chmod 有 5 位数字,为什么?

为什么 Midnight Commander 中的 chmod 有 5 位数字,为什么?

如果我转到文件菜单中的 chmod,它会返回文件夹/文件的 chmod 值。

我知道最后 3 位数字,第二位是 setuid/setgid/sticky 位(我读过相关文档,但不太清楚它的用途)……然后是第一位数字,我猜是文件/文件夹,还有什么?比如文件夹的数字是 4,文件的数字是 0……那 2 和 6 呢?我检查过,符号链接没有单独的 chmod 第一位数字值。

答案1

chmod,您可能知道,是“change mode”的缩写。这里的“mode”是指st_modeinode 中的字段。  统计(2)statfstat和系统调用的手册页lstat显示st_模式最多 7 位数字的值。以下是摘录:

   S_IFSOCK   0140000   socket
   S_IFLNK    0120000   symbolic link
   S_IFREG    0100000   regular file
   S_IFBLK    0060000   block device
   S_IFDIR    0040000   directory
   S_IFCHR    0020000   character device
   S_IFIFO    0010000   FIFO

好的,第一个数字始终为零,以表示该数字是八进制的;我们可以忽略这一点。MC 似乎也忽略了第二个数字。因此,您可以看到常规文件的第三位(即从右边数第五位)数字为 0,目录为 4。2 和 6 分别是字符设备和块设备;您应该只会在 中看到这些/dev。命名管道应该是 1,文件系统套接字应该是 4。如果符号链接显示为 0,那就很奇怪了;也许有人认为显示 2 会太令人困惑。

相关内容