今回はディレクトリのハードリンクの数についてです。
あるディレクトリにファイルが存在しない状態から話を始めます。
まずは、lsコマンドで確認します。
1 2 3 4 5 |
# ls -la total 8 drwxr-xr-x 2 root root 4096 Oct 6 21:46 . dr-xr-xr-x. 33 root root 4096 Oct 6 21:41 .. # |
では、ここで「kamo」ディレクトリを作成し、lsコマンドを実行します。
1 2 3 4 5 6 7 8 |
# mkdir kamo # # ls -la total 12 drwxr-xr-x 3 root root 4096 Oct 6 21:42 . dr-xr-xr-x. 33 root root 4096 Oct 6 21:41 .. drwxr-xr-x <span style="color: #ff0000;">2</span> root root 4096 Oct 6 21:42 kamo # |
「kamo」ディレクトリの欄のうち「2」と表示されている箇所があります。
この箇所がハードリンクの数ですよね。数が「2」となっています。作ったばかりなのに、「2」なんです。
続いて、「-R」オプションをつけて再度実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
# ls -laR .: total 12 drwxr-xr-x 3 root root 4096 Oct 6 21:42 . dr-xr-xr-x. 33 root root 4096 Oct 6 21:41 .. drwxr-xr-x 2 root root 4096 Oct 6 21:42 kamo ./kamo: total 8 drwxr-xr-x <span style="color: #ff0000;">2</span> root root 4096 Oct 6 21:42 <span style="color: #ff0000;">.</span> drwxr-xr-x 3 root root 4096 Oct 6 21:42 .. # |
「-R」をつけることで、「kamo」ディレクトリの中身が見れました。
ここで注目すべきは「kamo」ディレクトリ内の「.」の箇所。これは自分自身のディレクトリを表します。このハードリンクが「2」になっていますね。
お気付きの方もいらっしゃるかもしれませんが、実は「kamo」ディレクトリのハードリンクのお相手はこの「.」なのです!
さらに見ていきましょう。
今度は、「kamo」ディレクトリ内に「tora」ディレクトリを作成し、同じく「-R」オプションをつけてlsコマンドを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# mkdir kamo/tora # ls -laR .: total 12 drwxr-xr-x 3 root root 4096 Oct 6 21:42 . dr-xr-xr-x. 33 root root 4096 Oct 6 21:41 .. drwxr-xr-x <span style="color: #ff0000;">3</span> root root 4096 Oct 6 21:43 <span style="color: #ff0000;">kamo</span> ./kamo: total 12 drwxr-xr-x <span style="color: #ff0000;">3</span> root root 4096 Oct 6 21:43 <span style="color: #ff0000;">.</span> drwxr-xr-x 3 root root 4096 Oct 6 21:42 .. drwxr-xr-x 2 root root 4096 Oct 6 21:43 tora ./kamo/tora: total 8 drwxr-xr-x 2 root root 4096 Oct 6 21:43 . drwxr-xr-x <span style="color: #ff0000;">3</span> root root 4096 Oct 6 21:43 <span style="color: #ff0000;">..</span> # |
先ほどまで「2」だった「kamo」ディレクトリと「kamo」ディレクトリ内の「.」のハードリンクが「3」になっています。
1つ増えたわけですが、これ、実は先ほど作成した「tora」ディレクトリが関係しています。
「..」は親ディレクトリを表すことはご存知かと思います。ということは、「tora」ディレクトリ内にある「..」は親ディレクトリの「kamo」ディレクトリを表しているわけですね。
というころで、3つ目のハードリンクは「tora」ディレクトリの「..」ということになります。
余談ですが、この「tora」ディレクトリと同じ階層に複数のディレクトリが存在する場合、「kamo」ディレクトリのハードリンク数は増えていくわけです。
言い換えるなら、ハードリンク数を確認することで、その直下にあるディレクトリ数が判断つくってことですね。
豆知識ですが、覚えておくとどこかで役に立つかもしれません。