web-dev-qa-db-ja.com

ソフトリンクではなくハードリンクを使用する必要があるのはいつですか?

mklinkをいじり始めようとしていますが、それでもこの「シンボリックリンク」全体を実際に把握しようとしています。特に、「ソフトリンク」と「ハードリンク」の2種類のリンクがあることに気づきましたが、両者の違いを真に理解するのに苦労しています。与えられたユースケース。

私がこれまでに収集できたもののほとんどはこれです:

  • ソフトリンクは、ターゲットファイル/フォルダへのポインタとして扱われます。
  • ハードリンクは、実際にはターゲットファイル/フォルダーであるかのように扱われます。

これは、OSとアプリケーションがリンクをどのように処理するかという点で実際にはどういう意味ですか?どちらを使用するかを決定する際には、どのような要素を考慮する必要がありますか?

私が持っている現在の使用例は SkyDriveに実際のSkyDriveディレクトリの外にあるファイル/フォルダを同期させる です。ただし、回答に将来の参考のための一般的なガイドラインも含めることができればと思います。

10
Iszi

ソフトリンクはファイルへのポインタであるため、ソフトリンクがぶら下がっている可能性があります。

ぶら下がっているハードリンクを持つことはできません。各ファイルには、少なくとも1つのハードリンク、つまりファイルシステム内のディレクトリエントリがあります。したがって、ファイルを作成してからそのファイルへのハードリンクを作成してから元のファイルを削除しても、ハードリンクは影響を受けません。

このため、ハードリンクを使用すると、ファイルを削除したときにファイルが実際になくなったと思われる場合がありますが、すべてのハードリンクを削除しない限り、ファイルは引き続き存在します。ハードリンクのこの特定の側面を利用したい場合を除いて、ほとんどの場合、ソフトリンクを使用します。

6
LawrenceC