これを使用すると、なぜrm -rf my-symlink
シンボリックリンクのみが削除され、リンクされたディレクトリ内のrm -rf my-symlink/
ファイルが削除され、シンボリックリンクが維持されるのか疑問に思います。
ベストアンサー1
stat my-symlink
との出力を比較すると、違いを確認できますstat my-symlink/
。my-symlink
スラッシュのないシンボリックリンク自体はmy-symlink/
シンボリックリンクが指すディレクトリであり、シンボリックリンクが指すディレクトリのmy-symlink/
inodeとinodeを比較して独立して確認できます。
この情報を使用すると、表示される動作はで説明されているものと一致します。rm
仕様:シンボリックリンクを処理するときにrm
リンクがディレクトリを指している場合は、「下へ」移動せずにリンクを削除します。ディレクトリを処理するとき(オプションを使用-r
)、その内容を再帰的に削除します。このmy-symlink/
場合、rm
「ディレクトリ」を削除しようとしますが、ディレクトリではなくシンボリックリンクなので失敗します。ただし、-f
フラグによってエラーは発生しません。