9

While I was trying to compile a C shared object library, I accidentally created two symbolic links which point to each other. Is there a way to get rid of them without nuking the whole directory? I read that the only way to break a symbolic link is to delete the file it points to, but I'm sure there must be another way. Thanks for the help.

Evan Kroske
  • 448
  • 2
  • 7
  • 17
  • 4
    Then delete the file it po... oh god. How did you manage this? :P – Phoshi Feb 02 '10 at 15:32
  • 2
    It is easy to do, and even easier to fix. Simlinks point at a filename, and the target filename does not even have to exist. And rm removes the simlink, not the file it points to. – Justin Smith Feb 02 '10 at 21:08

3 Answers3

18

It's not a problem to delete symbolic links. I'm not sure why you think that you need to delete the file the link points to.

Just delete them. Try this:

ln -s thing1 thing2   # thing1 does not exist
ln -s thing2 thing1   # circular reference
rm thing1 thing2      # no problem
Mark Borgerding
  • 948
  • 1
  • 6
  • 8
5

Nevermind, I can delete both links simultaneously with rm. Why did someone say I had to delete the target file...

Evan Kroske
  • 448
  • 2
  • 7
  • 17
3

When you delete a symbolic link in Linux, the link is deleted and not the target file.

Mr. Shiny and New 安宇
  • 1,152
  • 1
  • 12
  • 22