Що таке помилка "не вдалося створити символічне посилання: файл існує"?


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(як воно є, без розширення).


12
Завжди пам’ятайте, що порядок параметрів такий, як уcp
Хаген фон Ейтцен

... як обговорювалося тут на Super User.
G-Man

2
Моє мнемонічне значення для цього - "що куди", наприклад, посилання що куди, переміщення чого куди ...
MicrosoftFree

1
Є навіть cp -s.
дельтаб

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 ~ / Документи / saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc --force
DropHit

Так би це було ln -sf...
Pathros

16

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

Нерозумний спосіб створення символічних посилань

Спочатку перейдіть до каталогу, де ви хочете створити посилання

cd ~/Documents/saga

Потім створіть посилання за допомогою одного аргументу .

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

Це створить посилання на поточний каталог з тим самим іменем, що і цільовий.


0

Можливо, це не пов'язано між собою.
Для мене посилання була мертвою. Вказівка ​​на неіснуючу папку. При спробі замінити його не вдасться із цим повідомленням. ^ Отже, простого rm linkNameбуло достатньо.


0

Просто для додавання нової інформації ви можете видалити поточне символьне посилання, а потім знову створити символьне посилання.

rm  ~/Documents/saga

Потім знову створіть симпосилання:

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

Сподіваюся, це допоможе всім, хто досі стикається з помилкою "файл існує".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.