generated at
hard link



同じファイルに対する2つ以上のpathを作成する
ディスク上の物理的なデータに対して2つ以上の参照が存在する
例えば、バックアップとスナップショットのために使う
歴史が、A,B,Cとあった時に、
AとBの内容が全く同じである場合、BはAのハードリンクとして作る
そうすることで、ディスクの容量を無駄に食わない
ここで、仮にAが削除されても、Bには影響しない
ここがsymbolic linkとの違い

lnコマンドを使って作る










symbolic linkとは異なる
フォルダに対しては作れない
同じパーティションにしか作れない
同一のファイルにポインタを指して、別名のファイルを作る
dir
C → A ← B
A というファイル実体に向けて、 C B からポインタを貼ることで、
A に、 C B という名前をつけたことになる
欠点としては、上のファイルの実体 A 視点で見ると、誰にポインタを貼られているのかわからない点
削除時の順序
実体 A という名前がついている
ハードリンクで B , C という名前をつける
A を削除する
B C が存在するので 実体 は消えない
A のパスを見てもアクセスはできない
B を削除する
C が存在するので 実体 は消えない
C を削除する
実体 は誰にも見られなくなったので本当に消える
ファイルを消した際に、本当に 実体 が消えるのかどうかが状況に依存する
消えることもアレば、消えないこともある

そもそも論
「ファイルを作成」したときに
実体 そのファイル名 は別々に作られる、という理解を前提にしておこう
つまり、全てのファイル実体には一つ以上のファイルから参照されている
誰にも参照されなく成った 実体 は削除される


参考