目录结构如何存储在 UNIX 文件系统中?

Oka*_*Oka 9 linux unix filesystems

我已经读到每个目录都使用文件名和 inode 对列表来存储它们的内容(文件和子目录)。但是我得到的参考文献中没有一个提到它们是如何存储的。

它们是否存储在其父目录的 inode 上,像普通文件一样使用数据块,还是使用我不知道的其他方式?

感谢您的澄清。

Red*_*ick 11

请参阅文件系统内部结构,它以一种相当简单的方式概述了典型 Unix 文件系统的内部结构。

在此处输入图片说明

大多数 Unix 文件系统包含

  • 一个引导块
  • 超级块(磁盘几何结构、分区布局、inode 计数等)
  • 节点块
  • 数据块

现代文件系统包含额外的结构。

超级块中的一件事是根目录的 inode 的位置。

目录是一种特殊格式的文件。与所有普通文件一样,它也有数据块。

您可以在Linux 文档项目:文件系统中看到这一点

在此处输入图片说明

您可以使用debugfs来探索这些结构。

  • “目录是一种特殊格式的文件。与所有普通文件一样,它也有数据块。” 那么目录是否将它们的文件名-inode 对(第一张图最左边的表,或第二张图的行)存储在它们的数据块中? (2认同)