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