LinuCレベル1 ファイル・ディレクトリの操作と管理 問20
ファイル・ディレクトリの操作と管理/ハードリンクとシンボリックリンクls -l でファイルの詳細を表示したとき、パーミッションの次(左から2番目の欄)に表示される数値が表すものとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)
- Aそのファイルを指しているシンボリックリンクの数(リンク元の総数)
- Bそのファイルのハードリンク数(同じinodeを参照する名前の数)
- Cそのファイルのinode番号(ファイルシステム内での識別番号)
- Dそのファイルが使うディスクのブロック数(ディスク上の割当量)
正解:B
解説
ls -l の2番目の欄はハードリンク数(リンクカウント)で、同じinodeを参照しているファイル名がいくつあるかを示します。ln でハードリンクを作るとこの数が1増え、どれか1つの名前を削除すると1減ります。リンク数が0になり、そのファイルを開いているプロセスも無くなった時点で、データの領域が解放されます。シンボリックリンクを作ってもリンク先のリンク数は増えません。inode番号を確認するには ls -i を使い、同じ番号であれば同じ実体を指すハードリンクだと判断できます。
選択肢ごとの解説
- A誤り。シンボリックリンクはリンク先のパスを持つ別のファイルで、作成してもリンク先のリンク数は増えません。
- B正しい。2番目の欄はハードリンク数で、同じinodeを参照しているファイル名の数を表します。
- C誤り。inode番号は ls -i で表示されるもので、ls -l の2番目の欄ではありません。
- D誤り。ファイルが使用するブロック数は ls -s などで表示されるもので、ls -l の2番目の欄ではありません。