file - 移除目录的符号链接。

  显示原文与译文双语对照的内容

我有一个重要目录的符号链接。 我想摆脱那个符号链接,同时保持它后面的目录。

我试过 rm 后回来 rm: cannot remove 'foo'
我试过 rmdir 后回来了 rmdir: failed to remove 'foo': Directory not empty
然后我通过 rm -frm -rfsudo rm -rf 进行了进展

然后我去找我的back-ups 。

是否有办法摆脱符号符号的束缚,用bathwater扔掉孩子?

时间:


# this works
rm foo
# versus
rm foo/

基本上,你需要告诉它删除一个文件,而不是删除一个目录。 我相信 rmrmdir 之间的差异存在,因为C 库对待每一个不同的方式。

无论如何,第一个应该工作,而第二个应该抱怨foo是一个目录。

如果它不能正常工作,请检查你的权限。 你需要对包含目录的写权限才能删除文件。

rm应该删除符号链接。


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:~$

假设它是一个符号符号


$ rm -d symlink

它应该能找到它,但因为我们不能启用原本不存在的潜在代码,但在这里却做了正确的事情。

使用 rm symlinkname 但不包括末尾的斜杠( 不要使用: rm symlinkname/ ) 。然后询问你是否要删除符号符号,y 以回答是。

假设你的设置类似于: ln -s/mnt/bar ~/foo 那么你就可以做一个没有问题的rm foo 。 如果不能,请确定你是 foo的所有者并具有写入/执行文件的权限。 删除 foo 不会触摸 bar,除非你递归执行它。

...