111

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
  • 70,934
  • 124
  • 466
  • 653
maria
  • 1,947
  • 4
  • 24
  • 33
  • 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

72

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,627
  • 16
  • 118
  • 187
45

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,234
  • 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
  • 1