web-dev-qa-db-fra.com

Qu'est-ce qu'une erreur "n'a pas réussi à créer un lien symbolique: le fichier existe"?

J'essaie de créer un lien symbolique dans mon répertoire personnel vers un répertoire 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

créer un lien symbolique nommé saga dans mon répertoire Documents de mon dossier home. 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 que . et ... En général, mon dossier home est vide, il ne s'agit que d'une nouvelle installation du système.

56
maria

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

ln -s Existing-file New-name 

donc dans ton cas

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

devrait marcher. 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 (êtes-vous sûr du double point?)

  3. si ~/Documents/saga n'existe pas, votre lien symbolique sera ~/Documents/saga (en l'état, sans extension).

42
Rmano

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
Je regarde donc man ln et l’utilise

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

C'est un travail comme je m'y attendais.

17

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. Ainsi j'ai trouvé un

Un moyen infaillible de créer des liens symboliques

D'abord, allez dans le répertoire où vous voulez créer le lien

cd ~/Documents/saga

Créez ensuite 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.

16
MadMike

Pourrait être sans rapport.
Pour moi, le lien était mort. Pointant sur un dossier non existant. En essayant de le remplacer, il échouerait avec ce message. ^ Donc, un simple rm linkName suffisait.

0
AdrianH

Juste pour ajouter de nouvelles informations, vous pouvez supprimer le lien symbolique actuel, puis recréer le lien symbolique.

rm  ~/Documents/saga

Puis recréez le lien symbolique:

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

J'espère que cela aide tous ceux qui font encore face à l'erreur 'file exist'.

0
Andre Suchitra