你真的了解 inode 这个东西吗?
本文介绍了硬链接和 Unix 文件系统的 inode。
- inode 是操作系统提供的数据结构 (struct)
- inode 存储了文件或目录相对应的硬盘块 (disk blocks), 以及用户啊,权限啊之类的元信息
- filename, dirname 不存储在 inode 中
- 文件系统中每个 inode 都有自己的 ID
- 文件系统通过 ID 找 inode 对应的数据
- 目录的内容:一张表,登记了从目录和文件名字到 inode ID
- 目录也其实只不过是一种文件,设定了类型是 DIR
- 目录的数据存在和上面 ^ 的 inode 区别开的另外一个 inode
- rm 从目录中删掉一个 name-inode 的键值对。
- 当没有 name 指向 inode 时,Unix 会释放 inode 对应的硬盘块。
- 重复一个上面的概念:空目录是指有 . 和 .. 这两个 shorthand name 的目录
- 空目录有两个 link count
衍生思考:文章中的 Files and directories are inodes
其实是个不准确的描述。