次のコマンドでシンボリックリンクを作成しました。
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)
末尾のスラッシュを削除します。
プロンプトあり:
$ rm test5
プロンプトなし
$ rm -f test5
rm test5
を試す
(トレーニングのスラッシュなし).
スラッシュは 'test5'がディレクトリであるのに対して実際にはファイルリンクであることを示します。
末尾のスラッシュを削除して実行できます。
$ rm test5
これによりファイル(シンボリックリンク)が削除されます。
あるいは、リンク解除を使用することもできます。
$ unlink test5
ディレクトリではなくシンボリックリンクをリンク解除しようとしているので、ここでも末尾のスラッシュを省略する必要があります。
OPの問題は末尾の/
であるため、test5/
はエラーをスローしますが、test5
は機能します。
私の意図がはっきりしていて、リンクの代わりに実際のディレクトリを誤って削除する可能性がないので、unlink
よりrm
を使用することを好みます。ディレクトリ名の後に/
が付いていないことを確認してください。例:
unlink test5
オートコンプリートを使用して削除するリンクに名前を付けると、末尾にスラッシュが表示されないことがありますが、その半分が表示され、そのリンクを削除しようとしたときに見えないスラッシュが削除エラーになります。
その場合は、削除するリンクを "test5"のように1文字ずつ入力します。 rm test5
。