回答:
2つ以上の場所で1つのファイルが必要なハードリンクを使用しています。ある場所を削除したいのですが、そのファイルへのリンクがあることを忘れてしまうかもしれません。これにより、存在しないファイルへのシンボリックリンクが作成されるのを防ぐことができます。
明確化:
ファイル名は、実際にはファイルへのハードリンクです。したがって、すべてのファイルには少なくとも1つのハードリンクがあり、通常は「the」ファイル名と見なされます。ファイルを削除すると、実際にはそのハードリンクが削除されます(つまりrm
、「削除」ではなく「削除」という名前になります)。ファイルの最後のハードリンクが削除されると、システムはそのファイルも削除します。
ハードリンクは許可します...
複数の名前を持つ単一の実行可能ファイル。
例:
ls -l /bin | grep -v ' 1 ' | sort
のリストが表示さ/bin
れます。結果...
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 gunzip
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 uncompress
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bunzip2
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzcat
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzip2
3つのファイルbunzip2 bzcatとbzip2の代わりに同じファイルを使用し、ファイル内で何をすべきかを区別します。コードを節約し、コードを減らすことで、バグの可能性が減り、メンテナンスが容易になります。
複数のパスでアクセスされる単一のファイル。
インストールされている各パッケージの/ usr / share / doc / $ packagenameディレクトリを作成し、そのディレクトリ内に、パッケージのライセンス情報を含むLICENSEというファイルを作成するパッケージマネージャーを例にとります。典型的なLinuxシステムの多くのパッケージはGPLライセンスであるので、ファイルシステムにGPLの200のコピーを置く代わりに、1つのコピーと199のリンクしかありません。ptman @ Serverfault
ここでハードリンクが機能する(そしてソフトリンクが機能しない)理由:ハードリンクを1つだけ削除しても、ファイル自体は削除されません。
mv
)はコピー(cp
)+削除(rm
)です。」これは、ソースと宛先が異なるマウント上にある場合にのみ当てはまります。それ以外の場合、a mv
はファイルではなく名前のみを移動します。
mv
限り、名前のみを変更します。iノードは同じままです。