Linuxハードリンク[冗長]

Linuxハードリンク[冗長]

さて、私はこれがLinuxに関する比較的初心者の質問であることを知っていますが、ハードリンクに関連するどのような場合でも、既存のファイルへのハードリンクを作成し、元のファイルを削除すると、データはまだ新しいファイルの下に保存されます。 ?

それでは、この場合、2番目のファイルを作成すると、実際にハードドライブで使用されるスペースが増えますか? file1 = ソース file2 = file1 へのハードリンクがあるとします。

file2 をインスタンス化して作成すると、ディスクで使用される領域が増えます。つまり、ほぼ同じ2つのファイルがあるため、使用されるスペースが2倍になります。明らかに、両方のファイルが同じinodeを共有し、file2には保存するために少しのスペースが必要であることを知っています。メタデータ)?

これにより、ファイルを削除すると、inodeが解放されるまでディスク領域は実際には回復されません。そうですか?

初歩的な質問をして申し訳ありません。明確にすべきことがあります。

ベストアンサー1

inodeは同じであるため、file1とfile2は同じデータ(したがって同じメタデータ)を参照するため、データのコピーは必要ありません。

参照された inode は、file1 と file2 の両方が削除されるまで解放されません。

もう1つ明白なのは、 を作成し、 にfile1ハードリンクしてから、どのファイルが元のものかを知らせるように求めると、その操作を確実に実行できないことです。file2file1

簡単に言えば、ハードリンクを作成すると、元のデータとdir_entry同じデータの2番目のコピーが作成されます。ハードリンクが占める余分なスペースは対応するサイズです。dir_entry

おすすめ記事