如何删除目录的符号链接?


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/删除目标上的内容
Gayan Weerakutti

Answers:



20

尝试rm test5
(没有训练斜线)。

斜线表示“ test5”是目录,而实际上是链接到目录的文件。


14

您可以运行除去斜杠:

$ rm test5

这将删除文件(即符号链接)。

或者,您可以使用取消链接:

$ unlink test5

同样,您必须省略斜杠,因为您试图取消符号链接而不是目录的链接。


0

有时,如果您使用自动完成功能来命名要删除的链接,则可能看不到斜杠,但它是“一半”,并且在尝试删除该链接时,不可见的斜杠仍会给出删除错误。

因此,在这种情况下,逐个字符地键入要删除的链接,例如“ test5”。rm test5


1
从未听说过无形的斜线。这是什么壳?
卡米尔Maciorowski

我认为这可能是因为linewrap + cursor隐藏了该字符?
bertieb

0

OP中的问题是尾随/,因此test5/会引发错误,但是test5可行。

我更喜欢使用unlink而不是,rm因为我的意图更加明确,并且没有机会错误地删除真实目录而不是链接。确保/目录名称后没有尾随,例如:

unlink test5

-1

我问我很傻,但是您尝试了rm -r吗?由于它是一个符号链接,因此不应删除目标。

编辑:刚刚尝试过,这是正确的

编辑2:rmdir在手册页的第一行中表示删除空目录。我想是因为它是一个链接,所以在文件属性中检查了目录位,但是因为rmdir不怀疑是这种情况,所以它会吐出错误。只需使用rm -r


2
这将要求我删除目录中的文件,这不是我想要的,我只想删除链接
Peter Smit

之所以这样问是因为交互式是在我的.profile中定义的。已将响应添加到rm -r。它仍然不起作用。
Peter Smit

您留下了结尾的“ /”,这就是失败的原因
鲍比(Bobby)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.