66

I am working on my project using network simulator2. I installed it and everything is fine. I attempted to create a symbolic link between this installation and /usr/bin, so I could invoke the software by running ns from the command-line. Namely, I ran:

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

which generated the following output:

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


How can I delete the already created symlink or can I replace it with any other commands?

1
  • I was trying to do sudo ln -s destination source, and of course it bugged. Thanks for the answer.
    – aviggiano
    Jun 7, 2013 at 21:59

4 Answers 4

76

ln has -f switch that 'forces' a symlink to be created whether it exists or not.

sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
2
  • 2
    This should be the accepted answer. Jul 14, 2017 at 9:49
  • For some reason.... this does not work on my ubuntu 18.04 ... it does not complain, but it does not overwrite the existing link Jul 20, 2022 at 10:06
43
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
8
  • 1
    the above fails if ns is a folder - in which case use the rm -rf (recursive force switches) - in which case you might as well use the -sf switches for ln.
    – finley
    Nov 15, 2010 at 13:26
  • @finley Yes, you are right. Incase ns is a folder, it can't be deletd. It is now ambiguos to me that, can we create a symbolic link to a folder.?
    – Vinay
    Nov 15, 2010 at 13:41
  • 1
    yes, we can create a symbolic link to a folder. If it's a folder, you can do: sudo rm -r /usr/bin/ns
    – Praweł
    Nov 15, 2010 at 13:54
  • @Pawel I created a symlink to folder succesfully. I can even remove as u said above. But, when i type fold [created symlink for a folder] name in terminal it gives an error. What i actually thought was by creating a symlink to a folder and just typing the link name terminal would open that in nautilus. I am not sure whether it is possible or not..?
    – Vinay
    Nov 16, 2010 at 5:16
  • 1
    @Vinaychalluru if you want to open that folder, try typing: cd fold - it will open in a terminal. If you want to open it in nautilus, type: nautilus fold
    – Praweł
    Nov 16, 2010 at 6:13
29

I tried ln -sf while replacing but it didn't work for me, but doing ln -sfn directory link_name as root worked.

1
  • Without -n I was getting an infinite loop problem. Thanks! Dec 16, 2015 at 0:18
3

To add to all answers above, a symbolic link can be treated as a regular file in many cases (the link, not the target).

rm on a symbolic link will remove it. If the link is owned by root, you will need to sudo.

You should be able to rm /usr/bin/ns or rather sudo rm /usr/bin/ns don't forget ownership.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .