linux – ディレクトリへのシンボリックリンクを削除するには?

bash linux symbolic-link

以下のコマンドでシンボリックリンクを作ってみました

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)

  105  None  2009-07-20


ベストアンサー

最後のスラッシュを削除します

With prompt:

$ rm test5

Without prompt:

$ rm -f test5

129  Swanand  2009-07-20


rm test5を試してみてください(訓練用のスラッシュがない)

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

22  pelms  2009-07-20


最後のスラッシュを削除して実行することができます

$ rm test5

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

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

$ unlink test5

シンボリックリンクを解除しようとしているのはディレクトリではないので、最後のスラッシュを省略しなければなりません

15  Callum  2009-07-20


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

だから、その場合には文字ごとに文字を入力して、例えば “test5 “として削除するリンクをrm test5

0  user872812  2018-02-14


OPの問題は末尾の/なので、test5/はエラーを出しますが、test5は動作します

私はrmよりもunlinkを使う方が意図がはっきりしているし、リンクではなく実際のディレクトリを誤って削除してしまう可能性がないからです。ディレクトリ名の後に / がないことを確認してください

unlink test5

0  isapir  2019-05-02


聞くのがバカみたいですが、rm -rは試してみましたか?シンボリックリンクなので、ターゲットは削除されないはずです

編集:ちょうどそれを試してみて、それは正しいです

編集 2: rmdir はマニュアルページの最初の行で空のディレクトリを削除すると言っています。リンクなので、ファイルのプロパティでディレクトリビットがチェックされていると思うのですが、rmdir はそれを疑っていないのでエラーを吐いています。rm -r を使ってください

-1  bobby  2009-07-20


タイトルとURLをコピーしました