Linux Inodes

17 Mar 2025 | 阅读 2 分钟

Inode号是Linux和所有Unix类型系统中所有文件独一无二的编号。

当文件在系统上创建时,会为其分配一个文件名和Inode号。

通常,用户通过文件名访问文件,但内部文件名首先会映射到存储在表中的相应Inode号。

注意:Inode不包含文件名。这样做的原因是为了维护文件的硬链接。当所有其他信息都与文件名分离时,我们才能有多个文件名指向同一个Inode。


Inode内容

Inode是一种数据结构,包含有关文件的元数据。

以下内容存储在文件的Inode中

  • 文件的用户ID
  • 文件的组ID
  • 设备ID
  • 文件大小
  • 创建日期
  • Permission
  • 文件所有者
  • 文件保护标志
  • 链接计数器,用于确定硬链接的数量

示例

Linux Inodes1

查看上面的快照,它显示了一些Inode内容。


Inode表

Inode表包含所有Inode,并在文件系统创建时生成。df -i 命令可以用来检查文件系统中还有多少Inode是空闲未使用的。

Linux Inodes2

查看上面的快照,命令"df -i"显示了几个文件系统的使用情况。


Inode号

每个Inode都有一个唯一的编号,Inode号可以通过ls -li命令查看。

Linux Inodes3

查看上面的快照,目录Disk1有三个文件,每个文件都有不同的Inode号。

注意:Inode不包含文件内容,而是包含指向该数据的指针。

下一主题Linux目录