0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux学習 -ディレクトリ編-

0
Posted at

【図解】Linuxのディレクトリ・inode・ブロックデバイスの関係を理解する

はじめに

Linuxのファイルシステムを理解するうえで避けて通れないのが inode の仕組みです。
本記事では、ディレクトリ・inode・ブロックデバイスの関係を1枚の図で整理します。


全体像

スクリーンショット 2026-03-31 195005.png

上の図がすべてを表しています。ポイントは3つです。

  1. ディレクトリはただの「対応表」 — ファイル名とinode番号のマッピングを持つだけ
  2. inodeがファイルの「本体情報」を管理 — 種別・サイズ・データブロックへのポインタなどのメタデータ
  3. 実データはブロックデバイス上に存在 — inodeのポインタが指す先にバイト列が格納されている

ディレクトリのパーミッションが意味するもの

ディレクトリに対する rwx は、通常ファイルとは意味が異なります。

パーミッション 意味
r ls でファイル一覧を見られる
w 配下ファイルの名前変更・作成・削除(※ x も必要)
x 配下ファイルのinodeへアクセスできる(cd, ls -l, パスの通過)

w だけあっても x がなければ作成・削除はできない、というのがよくあるハマりポイントです。


... の正体

図中のディレクトリテーブルにある ... もただのエントリです。

  • .(inode 15) → 自分自身のディレクトリを指す
  • ..(inode 106) → 親ディレクトリを指す

ハードリンク数が「ディレクトリだと最低2」になるのは、親からのエントリ+自分の . エントリがあるためです。


まとめ

  • ファイル名はディレクトリが管理し、inodeは名前を知らない
  • 1つのinodeに複数のファイル名を紐づけたものがハードリンク
  • ls -i でinode番号、stat でinode情報を確認できる

図を頭に入れておくと、パーミッションやリンクの挙動で迷ったときに立ち返れます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?