98 votes

Qu'est-ce qu'une erreur du type "échec de la création d'un lien symbolique : le fichier existe" ?

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

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

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

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 . y .. . En général, mon home est vide, il s'agit d'une nouvelle installation du système.

66voto

Rmano Points 30303

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 aussi l'erreur ;

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

  3. si ~/Documents/saga n'existe pas, votre lien symbolique sera ~/Documents/saga (tel qu'il est, sans extension).

36voto

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
vers node.js v4.2.3
alors je regarde man ln et utiliser

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

Ce travail est conforme à mes attentes.

19voto

MadMike Points 4156

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

Un moyen infaillible de créer des liens symboliques

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

cd ~/Documents/saga

Ensuite, créez le lien avec un seul argument .

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

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

2voto

Andre Suchitra Points 21

Pour ajouter une nouvelle information, vous pouvez supprimer le lien symbolique actuel, puis recréer le lien symbolique.

rm  ~/Documents/saga

Puis recréer le lien symbolique :

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

J'espère que cela aidera ceux qui sont toujours confrontés à l'erreur "file exists".

1voto

AdrianH Points 11

Ça pourrait ne pas être lié.
Pour moi, le lien était mort. Il pointait vers un dossier non existant. Lorsque j'ai essayé de le remplacer, j'ai échoué avec ce message. ^ Donc un simple rm linkName était suffisante.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X