ハードリンクはファイルシステムの構造を壊しますか?

ハードリンクはファイルシステムの構造を壊しますか?

ハードリンクがファイルシステム構造を損なう可能性がある方法の非常に簡単な例が必要です。

人々がループのせいだと言うのを見ました。しかし、ソフトリンクを使用してループを作成できますが、ハードリンクがファイルシステムを破損する原因が何であるかはまだ疑問に思っています。

答え1

ファイルシステム構造を破壊する可能性があるディレクトリへのハードリンク。他の種類のファイルへのハードリンクは問題ではありません。たとえば、

mkdir foo
ln foo foo/self
rmdir foo

rmdir fooselfディレクトリに残っているリンク(その中にエントリ)があるため、ディレクトリは実際には削除されませんfoofooファイルシステムから切り離され、アクセスできなくなりますが、まだ存在します。ディレクトリへのハードリンクを無効にすると、この問題は回避されます。一部のガベージコレクションファイルシステムは、分離されたディレクトリツリーを自動的に回収しますが、実際には回収されません(これはほとんど利益のないかなりの量の作業です)。

別の問題は、ディレクトリツリーをナビゲートするツールです。ディレクトリへのハードリンクが許可されている場合、これらのツールは以前に見たすべてのディレクトリを覚えてスキップする必要があります。それ以外の場合は、独自のサブディレクトリ(またはそのサブディレクトリなど)であるディレクトリに会うときに永遠に繰り返されます。 )。

シンボリックリンクを持つループは問題になりません。シンボリックリンクの宛先が削除された場合、シンボリックリンクの存在は重要ではありません。再帰巡回では、明示的に要求されない限り、シンボリックリンクに従わない。

関連情報