什么是 inode?
在 Linux 和 Unix 类操作系统中,inode(index node)是文件系统中用于存储文件元数据的数据结构。 每个文件(包括目录)都有一个唯一的 inode 编号,该编号指向一个包含文件属性信息的 inode 记录。
inode 包含哪些信息?
- 文件类型(普通文件、目录、设备等)
- 文件权限(读、写、执行)
- 所有者 UID 和组 GID
- 文件大小(以字节为单位)
- 时间戳(创建时间、修改时间、访问时间)
- 链接计数(硬链接数量)
- 指向数据块的指针(直接、间接、双重间接等)
注意:inode 不包含文件名!文件名存储在目录项(directory entry)中,并与 inode 编号关联。
如何查看 inode 信息?
使用 ls -i 可以显示文件的 inode 编号:
ls -i example.txt
使用 stat 命令可查看完整的 inode 信息:
stat example.txt
inode 与硬链接、软链接
硬链接:多个文件名指向同一个 inode,因此它们共享相同的文件内容和元数据。删除一个硬链接不会影响其他链接,直到链接计数归零。
软链接(符号链接):是一个独立的文件,其内容是指向另一个文件路径的字符串。它拥有自己的 inode,不增加原文件的链接计数。
常见问题
Q:磁盘还有空间,为什么提示“磁盘已满”?
A:可能是 inode 耗尽了。即使有剩余空间,若所有 inode 已被分配,也无法创建新文件。可用 df -i 查看 inode 使用情况。