什么是 inode?
在 Unix 和 Linux 文件系统中,inode(index node,索引节点)是用于存储文件元数据的数据结构。 每个文件(包括目录)都有一个唯一的 inode 编号,它不包含文件名,而是记录了文件的权限、所有者、大小、时间戳以及指向实际数据块的指针等信息。
inode 包含哪些信息?
- 文件类型(普通文件、目录、设备等)
- 文件权限(读、写、执行)
- 文件所有者(User ID 和 Group ID)
- 文件大小(以字节为单位)
- 时间戳(创建时间、修改时间、访问时间)
- 链接计数(有多少个文件名指向该 inode)
- 指向数据块的指针(直接、间接、双重间接等)
注意:文件名并不存储在 inode 中,而是存储在目录文件的内容里,目录本质上是一个“文件名 → inode 号”的映射表。
为什么 inode 很重要?
inode 是文件系统高效管理文件的关键。通过分离文件名与元数据,系统可以实现硬链接、快速文件操作、以及高效的磁盘空间管理。 当磁盘的 inode 耗尽时,即使还有剩余空间,也无法创建新文件——这是运维中常见的“磁盘满”陷阱之一。
实用命令示例
查看文件的 inode 编号:
ls -i filename.txt
查看文件系统 inode 使用情况:
df -i
通过 inode 删除无名文件(如含特殊字符的文件):
find . -inum 123456 -delete
小实验:查看当前目录的 inode 信息
点击下方按钮,使用 JavaScript 模拟显示一个示例 inode 信息(仅演示用途):