ファイルを作成して次のようにシンボリックリンクすると、
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
/
example
example
example
または単に使用してくださいPOSIXfind
、example
壊れたシンボリックリンクを削除して見つけます。
rm example
find -L / -type l
すべての結果を削除する必要があると判断した場合:
find -L / -type l -exec rm {} +
すべての壊れたシンボリックリンク(書き込み可能なディレクトリ)が削除されます。