116

I'm trying to create a symlink in my home directory to a directories and files on my data partition. I've tried:

~/Documents$ ln -sv ~/Documents/saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc

to create a symlink named saga in my Documents directory in my home folder. The terminal output is:

ln: failed to create symbolic link ‘/media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc’: File exists

I was checking the content of ~/Documents with ls -a , there is nothing but . and ... In general my home folder is empty, it's just a fresh system installation.

Jorge Castro
  • 71,754
maria
  • 1,997
  • Thanks. It seems my question is not very useful. Should I delete it? Or you convert your comment in the reply so I could accept it as solved :) – maria Oct 30 '14 at 09:57
  • 4
    Your question has a score of four, so apparently the community decided that it is useful. Also, even if you tried you wouldn't be able to delete the question, since it has an answer with a score of 1 or more. – 11684 Oct 30 '14 at 19:29
  • I got my answer to this question from here (on this forum): http://askubuntu.com/questions/379647/failed-to-create-symbolic-link-usr-bin-utserver-file-exists/379649#379649 – wayneeusa Jun 24 '15 at 07:57
  • Use ln -sf instead of ln -s. Be careful though, as this may overwrite your original file with a broken symlink. Check what's been typed carefully before you add the -f flag. – BonieSV Jun 07 '22 at 06:18

5 Answers5

74

This is a classical error... it's the other way around:

ln -s Existing-file New-name 

so in your case

ln -sv /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc ~/Documents/saga 

should work. Note though:

  1. if ~/Documents/saga exists and is not a directory, you will have the error too;

  2. if ~/Documents/saga exists and is a directory, the symbolic link will be ~/Documents/saga/saga..doc (are you sure about the double dot?)

  3. if ~/Documents/saga does not exists, you symbolic link will be ~/Documents/saga (as it is, no extension).

Rmano
  • 31,947
49

I have same error message
when redirecting

ln -s /usr/bin/nodejs /usr/bin/node

from node.js v0.10.25
to node.js v4.2.3
so I look at man ln and use

[OPTION] 
-f, --force
          remove existing destination files

This is work as I expected.

22

As @Rmano responded in his answer the arguments were in the wrong order. I made the same mistake pretty often too. Thus I found a

Fool-proof way to create symbolic links

First go into the directory where you want to create the link

cd ~/Documents/saga

Then create the link with a single argument.

ln -s /very/long/path/to/target/Downloads/saga..doc

This will create a link to the current directory with the same name as the target.

MadMike
  • 4,244
  • 8
  • 28
  • 50
4

Just to add new information, you can remove the current symlink, then re-create the symlink.

rm  ~/Documents/saga

Then re-create the symlink:

ln -sv /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc ~/Documents/saga

Hope this helps anyone who still faces 'file exists' error.

2

Might be unrelated.
For me the link was dead. Pointing to a non existing folder. When trying to replace it, it would fail with this message. ^ So a simple rm linkName was enough.

AdrianH
  • 21