回答:
メール配信からの類推を使用すると、シンボリックリンクは転送アドレスのようなものです...シンボリックリンクを開こうとすると、そこに保存されている「ファイル」(ただし、ファイルではありません)が開かれ、それが表示されます。代わりに別の名前のファイルを見る必要があるため、代わりに他のファイルを開きます。
ハードリンクは、同じ場所に2つの住所があるようなものです。(もちろん、これは現実の世界では実際には不可能です)。何かがいずれかのファイル名(アドレス)を読み取ろうとすると、同じ物理ファイル(場所)を取得します。
したがって、ファイルは一度しか保存されないため(ただし、複数の名前で)、ハードリンクはコピーではありません。ただし、2つのファイル名から同じ情報にアクセスできるため、コピーのように動作します。
/foo
と/bar
、変更/foo
も変更されます/bar
、彼らはしているハードリンク(同じファイルのための彼らだ2名のため)場合ではなく、彼らはしている場合コピー(2つの完全に独立したファイルであるため)。
いいえ。ファイルへの(2番目以降のすべての)ハードリンクは、ディスク上の同じiノードへのポインタです。
ハードリンクを作成すると、同じファイルが2つの異なる場所に表示されることになります。ファイルは実際にはディスク上のデータブロックのセットへの参照にすぎないため、ハードリンクは別の参照を追加します。ファイルが本当に削除されることはほとんどありません。参照は削除されるだけなので、データにアクセスすることはできません。そのため、ハードリンクとして作成したファイルを削除しても、他の元のファイルはそのまま残り、その逆も同様です。
一方、シンボリックリンクは特定の名前のファイルにアクセスするための指示です。「このファイルを使用したい場合は、そこにあります」とプログラムに伝えます。これが、シンボリックリンクのターゲットを削除すると、シンボリックリンクが壊れる理由です。リンクを削除しても、ターゲットは影響を受けません。
* nixシステムのファイルには2つの部分があります。1つはデータ部分で、もう1つはiノードです。iノードは、メタ(HDD内の場所などのデータに関連する情報)情報を格納します。ハードリンクは、このiノードの正確なコピーを作成します。一方、sym linkは実際のiノードのiノードを指すiノードを作成します。したがって、ハードリンクのiノードデータはターゲットと同じですが、シンボリックリンクのデータは異なります。要するに、symリンクとハードリンクは、ファイルデータではなくiノードデータの内容によって異なります。これは、シンボリックリンクとハードリンクの違いについての私の理解です。これは開発者向けのものであり、私は開発者ではないため、最初はこれを理解するのに苦労しました。ああ知識のある人、私が間違っているなら私を訂正してください。