ソフトリンクではなくハードリンクをいつ使用すればよいですか?


10

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

私がこれまでに収集したことが最も多いのはこれです。

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

これは、OSとアプリケーションがリンクをどのように処理するかに関して、実際にはどういう意味ですか?どちらを使用するかを決定する際に考慮すべき要素は何ですか?

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

回答:


6

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

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

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


したがって、適切な比喩的な解釈は、ソフトリンクはファイルのショートカットであり、ハードリンクはファイルの同期されたコピーであるということでしょうか。
2013

まあ...ハードリンクは実際にはファイルのデータの追加のコピーを作成しないことに注意してください。これは別の物理ディレクトリエントリです。したがって、ファイルへの2つのハードリンクは、使用されるディスク領域をあまり変更しません。
LawrenceC

プログラミングの概念に精通している場合は、ソフトリンクを従来のポインタ、ハードリンクを参照カウント(スマート)ポインタと考えてください。
水田
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.