web-dev-qa-db-ja.com

ディレクトリ構造はUNIXファイルシステムにどのように保存されますか?

ファイル名とiノードのペアのリストを使用して、各ディレクトリがコンテンツ(ファイルとサブディレクトリ)を格納することを読みました。しかし、私が得た参考文献のどれも、それらがどのように保存されているかについて何かを述べていませんでした。

それらは親ディレクトリのiノードに保存されていますか、通常のファイルのようなデータブロックを使用していますか、それとも私が知らない他の方法を使用していますか?

説明をありがとう。

8
Oka

ファイルシステムの内部 を参照してください。これは、一般的なUnixファイルシステムの内部をかなり簡単な方法で概説しています。

enter image description here

ほとんどのUnixファイルシステムには

  • ブートブロック
  • スーパーブロック(ディスクジオメトリ、パーティションレイアウト、iノード数など)
  • Iノードブロック
  • データブロック

最新のファイルシステムには、追加の構造が含まれています。

スーパーブロックにあるものの1つは、ルートディレクトリのiノードの場所です。

ディレクトリは特別にフォーマットされたファイルです。すべての通常のファイルと同様に、データブロックがあります。

これは Linux Documentation Project:Filesystem で見ることができます。

enter image description here

debugfsを使用して、これらの構造を調べることができます。

10
RedGrittyBrick