你真的了解 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 其实是个不准确的描述。