rm ではなく unlink を使うこと
なお,子ディレクトリにシンボリック リンクが含まれるディレクトリを rm で消去するのは安全。
rm ではなく unlink を使うこと
なお,子ディレクトリにシンボリック リンクが含まれるディレクトリを rm で消去するのは安全。
(昔のメモ。2013年9月25日追記)
Dired によるルートディレクトリへのシンボリックリンクの削除(ルート権限)でシステム破損が起きた(Slackware)。
(確かなことは不明)
リンク自体が正常なシンボリックリンクではなかった(ハードもしくはその他を勘違いしていた)。
あるいは Emacs dired のリンク処理に問題があった。
Emacs では make-symbolic-link 関数に defadvice で引数を truename にする設定をしている。だとしても,何故削除時に働いたのか不明。
同じ作業をテスト ファイルで繰り返しても再現しない。
(2013年9月25日追記)おそらくディレクトリの末尾に "/" が入っていると実体を参照してしまう rm の仕様による。ルート ディレクトリだったため,これを避けられなかった。
(setq dired-recursive-deletes 'top) を設定する。いままで 'always (無条件)に設定していた。これでディレクトリの中身が空でなければ確認プロンプトが出る。
リンクの削除時には rm ではなく unlink コマンドを使う。