web-dev-qa-db-ja.com

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

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

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)

100
Peter Smit

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

プロンプトあり:

$ rm test5

プロンプトなし

$ rm -f test5

120
Swanand

rm test5を試す
(トレーニングのスラッシュなし).

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

19
pelms

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

$ rm test5

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

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

$ unlink test5

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

12
Callum

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

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

unlink test5
0
isapir

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

その場合は、削除するリンクを "test5"のように1文字ずつ入力します。 rm test5

0
user872812