Qu'est-ce qu'une erreur "impossible de créer un lien symbolique: le fichier existe"?

38

J'essaie de créer un lien symbolique dans mon répertoire personnel vers un répertoire et des fichiers de ma partition de données. J'ai essayé:

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

créer un lien symbolique nommé saga dans mon répertoire Documents dans mon dossier home . La sortie du terminal est la suivante:

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

Je vérifiais le contenu de ~/Documents avec ls -a, il n'y a rien d'autre que . et .. . En général, mon dossier home est vide, c'est juste une nouvelle installation du système.

    
posée maria 30.10.2014 - 10:37
la source

4 réponses

34

C'est une erreur classique ... c'est l'inverse:

ln -s Existing-file New-name 

donc dans votre cas

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

devrait fonctionner. Notez cependant:

  1. si ~/Documents/saga existe et n’est pas un répertoire, vous aurez l’erreur aussi;

  2. si ~/Documents/saga existe et est un répertoire, le lien symbolique sera ~/Documents/saga/saga..doc (êtes-vous sûr du double point?)

  3. si ~/Documents/saga n'existe pas, votre lien symbolique sera ~/Documents/saga (tel quel, pas d'extension).

réponse donnée Rmano 30.10.2014 - 11:02
la source
15

Comme @Rmano a répondu dans sa réponse , les arguments étaient dans le mauvais ordre. J'ai souvent fait la même erreur. J'ai donc trouvé un

Manière infaillible de créer des liens symboliques

Allez d'abord dans le répertoire où vous voulez créer le lien

cd ~/Documents/saga

Créez ensuite le lien avec un argument unique .

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

Cela créera un lien vers le répertoire actuel portant le même nom que la cible.

    
réponse donnée MadMike 30.10.2014 - 15:47
la source
11

J'ai le même message d'erreur
lors de la redirection

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

à partir de node.js v0.10.25
to node.js v4.2.3
donc je regarde man ln et utiliser

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

C’est du travail comme je l’espérais.

    
réponse donnée Alexander Glulkhovtsev 12.02.2016 - 06:58
la source
0

Peut ne pas être lié.
Pour moi, le lien était mort. Pointez sur un dossier non existant. En essayant de le remplacer, il échouerait avec ce message. ^ Donc, un simple rm linkName était suffisant.

    
réponse donnée AdrianH 15.02.2018 - 11:00
la source

Lire d'autres questions sur les étiquettes