ディレクトリへのシンボリックリンクを削除する方法は?


100

次のコマンドでシンボリックリンクを作成しました。

ln -s ../test5

今すぐ削除したいのですが、rmが失敗します。

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

シンボリックリンクを削除するにはどうすればよいですか?(Ubuntu 8.10、bash)


4
ヒント:rm -r link/ターゲットのコンテンツを削除します
ガヤンウェラクッティ

回答:


121

末尾のスラッシュを削除します。

プロンプトあり:

$ rm test5

プロンプトなし:

$ rm -f test5


と言うpermission denied
1.21ギガワット

1
末尾のスラッシュなし。だから、test5/間違っています。
-pylover

19

試してみてくださいrm test5
(トレーニングスラッシュなし)。

スラッシュは、「test5」が実際にはディレクトリにリンクしているファイルであるのに対し、「reactory」であることを示しています。


13

末尾のスラッシュを削除して実行できます。

$ rm test5

これにより、ファイル(つまり、シンボリックリンク)が削除されます。

または、リンク解除を使用することもできます。

$ unlink test5

ここでも、ディレクトリではなくシンボリックリンクのリンクを解除しようとしているため、末尾のスラッシュを省略する必要があります。


0

オートコンプリートを使用して、削除するリンクに名前を付けると、末尾のスラッシュが表示されない場合がありますが、「半分あり」、そのリンクを削除しようとすると、目に見えないスラッシュが削除エラーを返します。

したがって、その場合は、たとえば、「test5」として削除するリンクを1文字ずつ入力します。rm test5


1
目に見えないスラッシュについて聞いたことがない。これはどのシェルですか?
カミルマシオロウスキ

linewrap + cursorによって隠されているキャラクターへの参照であると思いますか?
ベルティエブ

0

OPの問題は末尾/にあるためtest5/、エラーをスローしますがtest5機能します。

私が使用することを好むunlinkのではなく、rm私の意図が明確であるとし、代わりに誤ってリンクの実際のディレクトリを削除する可能性はありません。/ディレクトリ名の後に末尾がないことを確認してください。例:

unlink test5

-1

私は愚かな質問をしますが、試しましたrm -rか?シンボリックリンクなので、ターゲットを削除しないでください。

編集:試しただけで正しい

編集2:rmdirは、manページの最初の行で空のディレクトリを削除すると述べています。リンクであるため、ファイルのプロパティでディレクトリビットがチェックされていたと思いますが、rmdirではエラーが発生しているとは思わないためです。rm -rを使用するだけです


2
これは私が唯一のリンクを削除したい、それは私が欲しいものではありません、ディレクトリ内のファイルを削除するために私に尋ねてきます
ピーター・スミット

質問は、インタラクティブが私の.profileで定義されていたためです。rm -rへの応答を追加しました。それでも動作しません。
ピータースミット

あなたはそれが失敗した理由だ末尾に「/」左
ボビー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.