ディレクトリのシンボリック リンクをrm(削除)する方法がわからないので、調べてみた。

階層が奥になったディレクトリでもシンボリックリンクを使えば、好きな場所に配置でき、アクセスが楽になりとても便利です。

シンボリックリンクを間違って作った時、消す(削除する)ために「rm」コマンドを使ったのですが、これが分かりにくい!のです。忘れた頃に、また同じことで悩むのは嫌なので、覚え書きにしました。

作成

シンボリックリンクの作成は下のとおりです。ln -s コマンドです。

[bash]$ ln -s 元のディレクトリ シンボリック
[/bash]

ロリポップでシンボリックリンクを作成する方法は下のリンクで紹介されています(OpenPNE設置)。

OpenPNE3の設置 / ブログ / マニュアル – ロリポップ!

SSHでログインして、コマンド操作します。

ここで間違ったもしくはリンクの場所を変えたいときに、このシンボリックリンクを削除するわけです。

削除

FTPクライアントからは削除できません。リンクが見えてはいますが削除出来ません。同じく、レンタルサーバーのコントロールパネルにあるWEBファイルマネージャーでも削除出来ません。まずこの点を押さえておきます。

どうするのか?、作るときと同じで、SSHからコンソールで削除します。

ここでは「シンボリックリンクのディレクトリ」を”symbolic”として、またコンソールはMacのターミナルを使った場合で説明していきます。

削除コマンドの”rm”でイイと思って、コマンドを実行しました。

が、エラーが返ってきました。ディレクトリじゃないよってシンボリックリンクのディレクトリなのに?。

[bash]rm astronomy/
[/bash]

 

[bash]rm: cannot remove `astronomy/’: Not a directory
[/bash]

とにかく消せません。

rmコマンド(ファイルまたはディレクトリを削除する)

「 / 」

google先生に聞いたところ、ディレクトリの終わりに「/」を付けているのがポイントらしいです。シンボリックリンクのディレクトリなんだから、ディレクトリの「/」は必要と思っていましたが...、”TABキー”の入力補完を使っても、後ろに「/」がキチンと付くのでそれで良いと思い込んでいました。

シンボリックリンクそのものはファイルなことに注意とのことです。

言われれば納得です。

つまり、ファイルを消すのと同じ操作でよいのです。

[bash]astronomy[/bash]

上のコマンドでシンボリックリンクを無事に削除できました。最後に”/”が一文字ないだけですが、結果が大きく変わるので注意が要ります。

これが分かる(気づく)まで、「なんで削除できないだぅー」と、のたうち回っていました。夜も寝れらません、あウソです。あきらめて寝ました。起きたら勝手に「消えていないかな」と思いながら。

このことは理解しておかないと、また失敗をしそうです。

ディレクトリのシンボリックリンクでハマったこと – OpenGroove
$ ln -s …

分かりやすい記事をまとめていただいたブロガーさんに感謝です。

まとめ

”ディレクトリのシンボリックリンク”を間違って作った時、削除するために「rm」コマンドを使いますが、コマンド実行の仕方を勘違いしていたので、泥沼にはまりました。

ディレクトリだからと「/」を最後に付けていましたが、エラーになり”ディレクトリではないです(なので、削除できません)”と、シェルから言われてしまいました。

ディレクトリのシンボリックリンクであっても、そのもの自体はファイルなのがポイントでした。ディレクトリの削除コマンドではなく、ファイルを削除する作法でOKでした。

シェルと戦うあなたにおすすめ!

この記事を書いた人