ハードリンクやその逆のシンボリックリンクの利点は何ですか?


回答:


10

これについては、ServerFaultで詳しく説明しています。

ハードリンクは伝統的に同じファイルシステム構造(unixspeakのiノード)を共有しますが、ソフトリンクはパス名のリダイレクトです。

  • ハードリンクは同じファイルシステム上にある必要があり、ソフトリンクはファイルシステムをまたぐことができます。
  • ハードリンクされたファイルは、どちらかを移動してもリンクされたままです(ファイルを別のファイルシステムに移動して、コピーと削除のメカニズムをトリガーする場合を除く)。ソフトリンクされたファイルは、ターゲット(元の)を移動すると、場合によってはリンクを移動すると破損します(絶対パスまたは相対パスを使用しましたか?それでも有効ですか?)。
  • ハードリンクされたファイルは同一ですが、オリジナルはソフトリンクで特別であり、オリジナルを削除するとデータが削除されます。すべてのハードリンクが削除されるまでデータは消えません。
  • ソフトリンクは任意のターゲットを指すことができますが、ほとんどのOS /ファイルシステムでは、ハードリンクディレクトリがファイルシステムグラフの循環を防止することを許可していません(ハードリンクであるunixディレクトリの.および..エントリを除く)。
  • ソフトリンクには、ファイルシステムウォーキングツールによる特別なサポートが必要になる場合があります。readlink(2)を読んでください。

(いくつかの詳細はmat1tによって思い出さました。ありがとう。)


10

Ronaldは、ハードリンクが2つの場所で異なるアクセス許可を持つことができると書きました。これは正しくない。両方の場所で同じiノードを共有します。権限はファイル名ではなくiノードにバインドされます。したがって、2か所のハードリンクのアクセス許可、アクセス時間などはまったく同じです...


1

シンボリックリンクはファイルシステムをまたぐことができますが、ハードリンクはできません。元のファイルを削除しても、ハードリンクはファイルを保持しますが、シンボリックリンクは保持しません。


0

ハードリンクとは、基本的にファイルが2か所に存在することを意味します。ファイルに異なる権限を設定できます。ファイルをその場で削除できますが、他の場所では削除できません。

ソフトリンクは、本物へのポインタにすぎません。

ハードリンクは、同じファイルを指す2つ(またはそれ以上)のディレクトリエントリです。ソフトリンクは、別のディレクトリエントリを指すディレクトリエントリです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.