Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
生徒
「先生、Linuxのlsコマンドでファイルの一覧を見る方法はわかってきたんですけど、-iオプションって何に使うんですか?」
先生
「-iは、ファイルのi-node番号を表示するためのオプションなんですよ。」
生徒
「i-node番号?それはファイルのサイズや日付とは違うんですか?」
先生
「はい、違います。i-node番号はLinuxがファイルを管理するときの住所のようなものなんです。順番に説明していきましょう。」
1. i-nodeとは?
LinuxやUNIX系のファイルシステムには、ファイルやディレクトリを管理するためのi-node(アイノード)という仕組みがあります。
i-nodeは、ファイルの「名札」のような存在で、その中には次のような情報が入っています。
- ファイルサイズ
- 作成日時や更新日時
- 所有者や権限
- ディスク上での保存場所
つまり、ファイルの「名前」そのものは別の場所で管理されており、実体の情報はi-nodeに格納されているのです。そして、このi-nodeにはそれぞれに固有の番号が割り当てられており、それがi-node番号です。
2. ls -i の基本的な使い方
ls -iを実行すると、ファイル名の前にi-node番号が表示されます。
ls -i
131072 Documents 131073 Downloads 131074 Pictures 131075 index.html
このように、ファイルごとに数字がついているのがi-node番号です。普段は気にしない数字ですが、システムを理解するうえで非常に重要な役割を果たしています。
3. i-node番号は何に役立つのか?
i-node番号を確認すると、次のような場面で役立ちます。
- 同じファイル名に見えても、中身が別物かどうかを区別するとき
- ハードリンクという仕組みで、複数の名前が同じ実体を指しているか確認するとき
- ファイルシステムのトラブルを調査するとき
例えば、ハードリンクを作成すると、異なるファイル名でもi-node番号が同じになります。これは「別の名前を付けただけで、同じ実体を指している」という意味です。
4. ls -li で詳細を確認
-iと-lを組み合わせると、i-node番号と同時に詳細な情報を確認できます。
ls -li
131072 -rw-r--r-- 1 user user 2048 Sep 16 10:00 index.html
131073 drwxr-xr-x 2 user user 4096 Sep 16 09:00 Documents
こうすると、i-node番号・権限・所有者・サイズ・日付をまとめて確認できるため、トラブルシューティングや管理の際に便利です。
5. ハードリンクでのi-node番号の確認
実際にハードリンクを作成してi-node番号を確認してみましょう。
ln index.html copy.html
ls -i
131072 index.html 131072 copy.html
このように、index.htmlとcopy.htmlは別々の名前を持ちながらも、同じi-node番号を共有しています。つまり、実体は同じファイルを指しているということです。
6. i-node番号とトラブル解決
i-node番号を知っていると、次のようなトラブル解決にも役立ちます。
- 「削除したはずのファイルがまだ残っている」ように見えるとき
- ログファイルが肥大化してディスク容量を圧迫しているとき
- ファイル名が壊れてしまい読めないとき
こうした場合でも、i-node番号を手がかりにファイルを特定できることがあります。特にシステム管理者にとっては重要な情報源となりますが、初心者にとっても「ファイルの裏側でこういう仕組みが動いている」と理解しておくと学習がスムーズになります。