107

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.

4
  • 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, 2014 at 9: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, 2014 at 19:29
  • I got my answer to this question from here (on this forum): askubuntu.com/questions/379647/…
    – wayneeusa
    Jun 24, 2015 at 7: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 7, 2022 at 6:18

5 Answers 5

71

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).

6
  • 17
    Always remember that the parameter order is as in cp Oct 30, 2014 at 12:18
  • ... as discussed here on Super User. Oct 30, 2014 at 15:21
  • 3
    My mnemonic for this is "what where", e.g., link what where, move what where... Oct 30, 2014 at 18:45
  • 2
    There's even cp -s.
    – deltab
    Oct 31, 2014 at 3:24
  • what if that New-name already exists? Jul 9, 2020 at 6:03
44

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.

4
  • 1
    i dont actually get your answer/point, what is the whole script you used? I think we have the same problem
    – theArc
    Mar 26, 2016 at 9:05
  • 3
    I think what he is suggesting to to add --force to your ln command ln -sv ~/Documents/saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc --force
    – DropHit
    Apr 29, 2016 at 15:37
  • 3
    So that'd be ln -sf ...
    – Pathros
    Nov 1, 2018 at 19:38
  • Thanks, that's what I was looking for
    – egvo
    Apr 8, 2021 at 18:14
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.

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.

1

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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