2009-07-20 12:40:03 +0000 2009-07-20 12:40:03 +0000
101
101

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

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

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)

回答 (6)

122
122
122
2009-07-20 12:51:01 +0000

最後のスラッシュを削除する:

プロンプトあり。

$ rm test5

プロンプトなし。

$ rm -f test5

21
21
21
2009-07-20 12:54:12 +0000

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

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

14
14
14
2009-07-20 13:06:36 +0000
$ rm test5

これはファイル(つまりシンボリックリンク)を削除します。

$ unlink test5

これはファイル(つまりシンボリックリンク)を削除します。

0x1&

ここでも最後のスラッシュを省略しなければなりません。

0
0
0
2019-05-02 03:05:12 +0000

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

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

unlink test5
0
0
0
2018-02-14 23:23:37 +0000

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

その場合は、削除するリンクを一文字ずつ入力して、例えばrm test5のように “test5 "として削除します。

-1
-1
-1
2009-07-20 12:42:27 +0000

バカな質問だと思うが、rm -rを試してみたか?シンボリックリンクなので、ターゲットは削除されないはずです。

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

関連する質問

6
10
11
5
10