Что такое ошибка «не удалось создать символическую ссылку: файл существует»?

60

Я пытаюсь создать символическую ссылку в моем домашнем каталоге на каталоги и файлы в моем разделе данных. Я пробовал:

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

создать символическую ссылку с именем sagaв моем Documentsкаталоге в моей homeпапке. Выход терминала:

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

Я проверял содержимое ~/Documentsls -a, ничего кроме .и ... В общем, моя homeпапка пуста, это просто новая установка системы.

Мария
источник
Благодарю. Кажется, мой вопрос не очень полезен. Должен ли я удалить это? Или вы преобразуете свой комментарий в ответ, чтобы я мог принять его как решенный :)
Мария
3
Ваш вопрос имеет счет четыре, так что, видимо, сообщество решило , что это полезно. Кроме того, даже если вы попробовали, вы не сможете удалить вопрос, поскольку он имеет ответ со счетом 1 или более.
11684
Я получил ответ на этот вопрос здесь (на этом форуме): askubuntu.com/questions/379647/…
wayneeusa

Ответы:

46

Это классическая ошибка ... это наоборот:

ln -s Existing-file New-name 

так в вашем случае

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

должно сработать. Обратите внимание:

  1. если ~/Documents/sagaсуществует и не является каталогом, у вас тоже будет ошибка;

  2. если ~/Documents/sagaсуществует и является каталогом, символическая ссылка будет ~/Documents/saga/saga..doc(вы уверены насчет двойной точки?)

  3. если ~/Documents/sagaне существует, ваша символическая ссылка будет ~/Documents/saga(как есть, без расширения).

Rmano
источник
12
Всегда помните, что порядок параметров такой же, как вcp
Хаген фон Айцен
... как обсуждено здесь на Супер Пользователе.
G-Man говорит: «Восстановите Монику»
2
Моя мнемоника для этого - «что где», например, ссылка «что куда», «перемещение куда» ...
MicrosoftFree
1
Там даже cp -s.
Deltab
18

У меня такое же сообщение об ошибке
при перенаправлении

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

от node.js v0.10.25
до node.js v4.2.3,
поэтому я смотрю man ln и использую

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

Это работа, как я ожидал.

Александр Глулховцев
источник
1
я на самом деле не получаю ваш ответ / точку зрения, что весь сценарий вы использовали? Я думаю, что у нас та же самая проблема
theArc
1
Я думаю, что он предлагает добавить --force к вашей команде ln ln -sv ~ / Documents / saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc --force
DropHit
Так что это будет ln -sf...
Патрос
17

Когда @Rmano ответил в своем ответе, аргументы были в неправильном порядке. Я тоже часто совершал одну и ту же ошибку. Таким образом я нашел

Надежный способ создания символических ссылок

Сначала зайдите в каталог, где вы хотите создать ссылку

cd ~/Documents/saga

Затем создайте ссылку с одним аргументом .

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

Это создаст ссылку на текущий каталог с тем же именем, что и цель.

MadMike
источник
0

Может быть не связано.
Для меня ссылка была мертва. Указывая на несуществующую папку. При попытке заменить его с этим сообщением не получится. ^ Так что простого rm linkNameбыло достаточно.

AdrianH
источник
0

Просто чтобы добавить новую информацию, вы можете удалить текущую символическую ссылку, а затем заново создать символическую ссылку.

rm  ~/Documents/saga

Затем заново создайте символическую ссылку:

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

Надеюсь, что это помогает любому, кто все еще сталкивается с ошибкой «файл существует».

Андре Сучитра
источник