skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$
9 回答
基本上,您需要告诉它删除文件,而不是删除目录 . 我认为
rm
和rmdir
之间存在差异,因为C库对待每个库的方式不同 .无论如何,第一个应该工作,而第二个应该抱怨foo是一个目录 .
如果它不能如上所述,那么检查您的权限 . 您需要对包含目录的写入权限才能删除文件 .
使用"unlink"命令并确保 not 具有/的结尾
我认为如果我正确阅读它可能会有问题 .
https://linux.die.net/man/2/unlink
如果rm无法删除符号链接,则可能需要查看包含符号链接的目录的权限 . 要删除目录条目,您需要对包含目录具有写入权限 .
假设您的设置类似于:
ln -s /mnt/bar ~/foo
,那么您应该能够做到rm foo
没有问题 . 如果您不能,请确保您是foo
的所有者,并且有权编写/执行该文件 . 删除foo
将不会触及bar
,除非您以递归方式执行此操作 .假设它实际上是一个符号链接,
它应该弄清楚,但是因为它不能我们启用潜在的代码,这个潜在的代码用于另一个不再存在的情况,但恰好在这里做正确的事情 .
使用
rm symlinkname
但最后不要包含正斜杠(请勿使用:rm symlinkname/
) . 然后会询问您是否要删除符号链接,y
以回答是 .我在Windows Server上运行的MinGW(实际上是Git Bash)遇到了这个问题 . 上述建议似乎都不起作用 . 最后制作一份目录副本,以防在Windows资源管理器中删除软链接,然后删除回收站中的项目 . 它发出的声音就像删除文件但没有 . 尽管做备份!
rm应该删除符号链接 .
在CentOS上,只需运行
rm linkname
,它将询问"remove symbolic link?" . 键入Y和Enter,链接将消失,目录是安全的 .