4

我对 inode 编号的定义大吃一惊:

inode 是传统 Unix 样式文件系统(如 UFS 或 ext3)上的数据结构。inode 存储有关常规文件、目录或其他文件系统对象的基本信息。来源

所以每个inode编号必须有一个逻辑顺序。你能直接从前面的数字得出什么结论吗?

4214970 0 drwx------  102 user  staff   3.4K Feb  2 22:34 new
5728909 0 drwx------    3 user  staff   102B Mar 25 22:11 new_new
5415906 0 drwx------   15 user  staff   510B Mar 19 02:28 stdout_TEST

如果没有,由于数据结构,您可以知道什么样的事情?

4

2 回答 2

7

inode 编号不是 inode。:) 您可以将 inode 编号视为 inode 的主键。

至于如何决定 inode 编号,则取决于文件系统。一些文件系统甚至可能凭空产生 inode 编号(尤其是一些 FUSE 文件系统)。其他时候,它可能会直接映射到磁盘上的位置。不幸的事实是,这是一个有点过时的概念,而且现在许多现代文件系统都难以将其内部位置信息压缩成 32 位数字。

在任何情况下,作为应用程序程序员,应该将 inode 编号视为一个不透明的值,仅适用于相等比较(并且仅当您确定文件没有被删除时,因为 inode 编号可能会被重用......)

于 2009-05-05T06:52:39.883 回答
4

你能直接从前面的数字得出什么结论吗?

不必要。索引节点被回收。

如果没有,由于数据结构,您可以知道什么样的事情?

检查包含struct适合特定文件系统的定义的头文件(例如/usr/include/linux/ext2_fs.h,用于 ext2 和 ext3)。

于 2009-05-05T06:58:17.797 回答