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

60

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é sagadans mon Documentsrépertoire dans mon homedossier. 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 ~/Documentsavec ls -a, il n'y a rien d'autre que .et ... En général, mon homedossier est vide, il ne s'agit que d'une nouvelle installation du système.

maria
la source
Merci. Il semble que ma question ne soit pas très utile. Dois-je le supprimer? Ou tu convertis ton commentaire dans la réponse pour que je puisse l'accepter comme résolu :)
maria
3
Votre question a un score de quatre, donc apparemment la communauté a décidé qu'il est utile. En outre, même si vous avez essayé, vous ne pourrez pas supprimer la question, car la réponse est de 1 ou plus.
11684
J'ai eu ma réponse à cette question ici (sur ce forum): askubuntu.com/questions/379647/…
wayneeusa

Réponses:

46

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/sagaexiste et n'est pas un répertoire, vous aurez aussi l'erreur;

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

  3. si ~/Documents/sagan'existe pas, votre lien symbolique sera ~/Documents/saga(comme il est, pas d'extension).

Rmano
la source
12
Rappelez-vous toujours que l'ordre des paramètres est comme danscp
Hagen von Eitzen
... comme discuté ici sur Super User.
G-Man dit 'Réintégrez Monica'
2
Mon mnémonique pour ceci est "quoi où", par exemple, lier quoi où, déplacer quoi où ...
MicrosoftFree
1
Il y a même cp -s.
deltab
18

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

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

de node.js v0.10.25
à node.js v4.2.3,
donc je regarde man ln et utilise

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

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

Alexander Glulkhovtsev
la source
1
Je ne comprends pas vraiment votre réponse / point, quel est le script entier que vous avez utilisé? Je pense que nous avons le même problème
theArc
1
Je pense qu’il suggère d’ajouter --force à votre commande ln ln -sv ~ / Documents / saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc - forcer
DropHit
Donc ça serait ln -sf...
Pathros
17

Comme @Rmano a répondu dans sa 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.

MadMike
la source
0

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

AdrianH
la source
0

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

Andre Suchitra
la source