ファイルとそのシンボリックリンクの削除

ファイルとそのシンボリックリンクの削除

ファイルを作成して次のようにシンボリックリンクすると、

touch "example"
ln -s "example" "link_example"

そして使用

rm example

シンボリックリンクがまだ存在します。ファイルとそのファイルを指すすべてのシンボリックリンクを削除するにはどうすればよいですか?

答え1

ファイルからそれを指すシンボリックリンクへのリンクがないので、それを指すリンクを直接考えてexample見つける方法はありません。link_exampleしたがって、ファイルとそのファイルを指すシンボリックリンクを削除するには、まずすべてのシンボリックリンクを見つける必要があります。

どのシステムを使用しているかを指定していませんが、牛に似た一種の栄養find、ファイルとそのリンクを削除できます

find -L / -samefile example -delete

走りたいかもしれない

find -L / -samefile example

削除するアイテムのリストを作成することから始めます。

これはシンボリックリンク()から始めて従うfindように指示し、同じinodeで識別されるすべてのファイルを報告します。したがって、これは独自のリンクだけでなく、ハードリンクとソフトリンクも一致します。-L/exampleexampleexample

または単に使用してくださいPOSIXfindexample壊れたシンボリックリンクを削除して見つけます。

rm example
find -L / -type l

すべての結果を削除する必要があると判断した場合:

find -L / -type l -exec rm {} +

すべての壊れたシンボリックリンク(書き込み可能なディレクトリ)が削除されます。

関連情報