シンボリックリンクの削除について

失敗談です。
原因は分かっているので質問ではありませんが、
他の人(自分も)が同じような失敗をしないように情報共有してみます。
今までとあるディレクトリへアクセスするため、
ターミナルでシンボリックリンクを張って使っていました。
$ ln -s originaldir linkdir
最近、その必要がなくなったので、またターミナルからシンボリックリンクを削除しようとしました。
$ rm linkdir/
としたところ「ディレクトリのため削除できません。」とメッセージが出て削除できませんでした。
なので何も考えずに
$ rm -r linkdir/
としてみたところ「originaldir」がその中のファイルと共にディレクトリごと削除されました。
MacOS Xではシンボリックリンクを削除する場合は
$ rm linkdir
と、最後の「/」は付けてはいけないようです。
他のOSはどうなんだろうと思い、Linux(CentOS 5.0/x86)やSolaris(9/SPARC)でも試してみましたが、
他のOSは最後に「/」を付けても「originarldir」を削除することはありませんでした。
※Linuxはエラーメッセージが出て削除不可(-rを付けても変わらず)
※Solarisは「/」を付けても付けなくてもシンボリックリンクのみ削除
これはMacOS X(今回は10.4.10)の仕様みたいです。
おかげで子供用に数年録りためていたアンパンマンとポンキッキーズ(トーマス)が全部消えてしまいました。
まあ最近ほとんど観てなくてハードディスクの肥やしになってはいたんですが、ちょっとショックでした。
皆さんも気を付けてください。

投稿日 2007/07/17 14:27

返信: 8

2007/07/17 15:12 Community User への返信

> アンパンマンとポンキッキーズ(トーマス)が全部消えてしまいました。
(お子様から責められてしまいそうな大事なdataは)folderに入れ、link切れにしてから消去するとか... :-)

2007/07/18 03:46 Community User への返信

そうかもしれませんね。
肝心のFreeBSDを試していないのですが、
検索してみても、シンボリックリンクの削除は最後の「/」ありで解説しているところもありました。
時間あるときに試してみたいと思います。
というかそもそも今回の失敗は仕様ともそうですが、
最初のエラーメッセージで「?」と気付くところを何も考えずに「-r」付けて
改めて実行したのが問題ですよね。
返信ありがとうございました。

2007/07/18 03:50 Community User への返信

子供はまだ気付いてません(笑)。
そうですね。
オリジナルのディレクトリをリネームなり移動なりバックアップなりしてリンク切れにしてからの方が確実でしたね。
次回からはそうします。
返信ありがとうございました。

2007/07/18 05:32 Community User への返信

> シンボリックリンクの削除は最後の「/」ありで解説しているところもありました。
これが理解できないです。
FreeBSD のSYMLINK の解説では、
"Symbolic links are files that act as pointers to other files."
としてます。GNU の symlink の解説でも同じことを書いています。
この定義からの帰結は、rm symlink で symlink そのものが削除される、というのが自然な帰結ではないでしょうか? symlink/ となっていれば、リンク先が削除されても仕方ないと思います。Linux の場合は、この場合はエラーになるようにしているのでしょう。普通のfile に対して、rm file/ としたらエラーになる訳ですから。

2007/07/18 06:13 Community User への返信

「alias rm="rm -i"」は最低限やっておくべきだと思います。どのUNIXであれ、私はまずいの一番にこれですね。

2007/07/19 08:42 Community User への返信

後だし情報ですいません。
自分はかなりのうっかり屋なので、実はrm、cp、mvには常に「-i」オプションのaliasを設定しています。
今回、実際には-f付けてました。
って言えば言うほどダメですね・・・

2007/07/19 08:51 Community User への返信

教えていただいたURLが英語の文献だったので日本語の情報で更に調べてみました。
何となく理解できたような気がします。
今までぜんぜん理解して使っていませんでしたね。
確かに/を付けたらオリジナルが削除されても仕方ないようです。
また一つ勉強になりました。
ありがとうございました。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

シンボリックリンクの削除について

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。