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?

  • I was trying to do sudo ln -s destination source, and of course it bugged. Thanks for the answer. – aviggiano Jun 7 '13 at 21:59
up vote 32 down vote accepted
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
  • 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 '10 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 '10 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 – Paweł Karpiński Nov 15 '10 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 '10 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 – Paweł Karpiński Nov 16 '10 at 6:13

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
  • This should be the accepted answer. – Rony Varghese Jul 14 '17 at 9:49

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

  • Without -n I was getting an infinite loop problem. Thanks! – Christopher Markieta Dec 16 '15 at 0:18

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.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.