UNIXでディレクトリを作成すると、2つのハードリンクがあります。.
1つ..
は自分自身のもの、もう1つは親ディレクトリのものです。
.
ディレクトリのインクリメントカウンタを読み取ると、..
親ディレクトリのハードリンクカウンタがインクリメントされます。
したがって、.
ディレクトリでのみ計算されます。ただし、これを行うと、まだ2つのハードリンクがありますls -l
。第二は何ですか?誰かがディレクトリのハードリンクがどのように計算されるのか教えてください。次の階層があると想像してください。
parent - 4 hard links
.
. child_1 - 2 hard links
.
. child_2 - 2 hard links
答え1
child1
child1
親エントリとのエントリ.
のため、2つのリンクがありますchild1
。
説明されている黄道帯の標識の中には、一般的に次のものがparent
あります。4つリンク(3ではありません)。他の親の子なので(ルートではない場合):
$ find parent | xargs stat -c "%h %n" # %h=link count, %n=name
4 parent
2 parent/child2
2 parent/child1
答え2
わかりました、私は講師にこう尋ねました。
.
ディレクトリ自体の数を1ずつ増やします。..
親ディレクトリの数を1ずつ増やします。ディレクトリ名もディレクトリへのハードリンクなので、新しいサブディレクトリには2つのハードリンクがあります。