ハードリンクを削除するとどうなりますか?

ハードリンクを削除するとどうなりますか?

rm myFileハードリンクを実行するとmyFileどうなりますか?

答え1

Unixでは、すべての一般的なファイルはハードリンクです。 Unix(およびほとんどの(すべて?))ファイルシステムのハードリンクは参照カウンタと呼ばれますinodeinodeファイルへの「リンク」がある場合(通常の作業方法)、カウンタは1です。 2番目、3番目、4番目などのリンクを作成すると、カウンタは毎回1分1秒ずつ時間を増やします(増加)。リンクを削除()すると、rmカウンタは1減少します。リンクカウンタがゼロに達すると、ファイルシステムはそのinodeスペースを削除し、そのスペースを使用可能としてマークします。

つまり、最後のリンクを削除しない限り、ファイルはそのまま残ります。

Edit:ファイルは残ります最後のリンクが削除されても。これは、ファイルに含まれるデータが安全で他のプロセスからアクセスできないようにする方法の1つです。データのメタデータに提供された接続がゼロであり、どのプロセスでも使用されていない場合にのみ、データはファイルシステムから完全に削除されます。

これIMHO、これはハードリンク(そしてソフトリンクとどう違うのか)を理解する最も簡単な方法です。

答え2

テストは思ったより簡単だった。テキストファイルを作成してからハードリンクしました。ハードリンクを削除すると機能しますいいえハードリンクされたファイルは削除され、リンクされたファイルは元の場所に残ります。

答え3

ディスク上のすべてのファイルは、実際にドライブの実際のデータへのポインタです。 ここに画像の説明を入力してください。

ファイルへのハードリンクを作成すると、ハードリンクファイルは元のファイルが指すのと同じデータを指します。

ここに画像の説明を入力してください。

この例に示すように、a.txtはドライブ上のファイルのデータ(バイト)を指し、ハードリンクb.txtが作成されるとa.txtが指すことを示します。

したがって、互いに分離されているため、一方を削除しても他方には影響しません。

ただし、それを削除すると、システムはディスク上のデータにそれを指すファイルがないことを確認するため、システムはそれを空き領域として扱い、必要に応じて上書きします。

関連情報