如何删除或替换已经创建的符号链接?


53

我正在使用网络模拟器2进行项目。我安装了它,一切都很好。我试图在此安装和之间创建一个符号链接/usr/bin,因此可以通过ns从命令行运行来调用该软件。即,我跑了:

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

生成以下输出:

ln: creating symbolic link '/usr/bin/ns': File exists


如何删除已经创建的符号链接或可以用任何其他命令替换它?


我正在尝试做sudo ln -s destination source,当然会出错。感谢您的回答。
aviggiano

Answers:


35
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

1
如果ns是文件夹,则上述操作将失败-在这种情况下,请使用rm -rf(递归强制开关)-在这种情况下,您最好对ln使用-sf开关。
finley 2010年

@finley是的,你是对的。如果ns是文件夹,则无法删除。现在对我来说,我们可以创建指向文件夹的符号链接了吗?
Vinay,2010年

1
是的,我们可以创建指向文件夹的符号链接。如果它是一个文件夹,你可以这样做:sudo的RM -r在/ usr / bin中/ NS
Pawełkowy

@Pawel我成功创建了一个指向文件夹的符号链接。我什至可以删除您上面所说的内容。但是,当我在终端中键入fold [为文件夹创建符号链接]名称时,会出现错误。我实际上以为是通过创建到文件夹的符号链接,然后只键入链接名称终端,即可在nautilus中打开它。我不确定是否可以..?
Vinay

1
@Vinaychalluru如果您想打开该文件夹,请尝试键入:cd fold-它会在终端中打开。如果你想在鹦鹉螺,类型打开它:Nautilus折叠
Pawełkowy

62

ln具有-f“强制”创建符号链接的开关,无论它是否存在。

sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

这应该是公认的答案。
罗尼·瓦吉斯

28

我试图ln -sf同时更换,但它并没有为我工作,但这样做ln -sfn directory link_nameroot工作。


没有-n我,我就遇到了无限循环的问题。谢谢!
Christopher Markieta,2015年

3

要添加到上述所有答案中,在许多情况下,符号链接可以被视为常规文件(链接,而不是目标文件)。

rm在符号链接上将其删除。如果链接是由root拥有的,则需要sudo。

您应该rm /usr/bin/ns或者应该sudo rm /usr/bin/ns不会忘记所有权。

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.