Co to jest błąd „nie udało się utworzyć dowiązania symbolicznego: plik istnieje”?

60

Próbuję utworzyć dowiązanie symboliczne w moim katalogu domowym do katalogów i plików na mojej partycji danych. Próbowałem:

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

aby utworzyć dowiązanie symboliczne o nazwie sagaw moim Documentskatalogu w moim homefolderze. Wyjście końcowe to:

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

Sprawdzałem zawartość ~/Documentsls -a, nie ma nic prócz .i ... Ogólnie mój homefolder jest pusty, to tylko nowa instalacja systemu.

Maria
źródło
Dzięki. Wydaje się, że moje pytanie nie jest zbyt przydatne. Czy powinienem to usunąć? Lub konwertujesz swój komentarz w odpowiedzi, abym mógł zaakceptować go jako rozwiązany :)
Maria
3
Twoje pytanie ma cztery punkty, więc najwyraźniej społeczność uznała, że jest ono przydatne. Ponadto, nawet jeśli spróbujesz, nie będziesz w stanie usunąć pytania, ponieważ ma odpowiedź z wynikiem 1 lub więcej.
11684
Otrzymałem odpowiedź na to pytanie stąd (na tym forum): askubuntu.com/questions/379647/…
wayneeusa

Odpowiedzi:

46

To klasyczny błąd ... jest na odwrót:

ln -s Existing-file New-name 

więc w twoim przypadku

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

powinno działać. Uwaga:

  1. jeśli ~/Documents/sagaistnieje i nie jest katalogiem, również wystąpi błąd;

  2. jeśli ~/Documents/sagaistnieje i jest katalogiem, symbolicznym linkiem będzie ~/Documents/saga/saga..doc(czy jesteś pewien podwójnej kropki?)

  3. jeśli ~/Documents/saganie istnieje, link symboliczny będzie ~/Documents/saga(jak to jest, bez rozszerzenia).

Rmano
źródło
12
Zawsze pamiętaj, że kolejność parametrów jest taka jak wcp
Hagen von Eitzen
... jak omówiono tutaj na Super User.
G-Man
2
Moim mnemonikiem jest to „co gdzie”, np. Link co gdzie, przeniesienie co gdzie ...
MicrosoftFree
1
Jest nawet cp -s.
deltab
18

Mam ten sam komunikat o błędzie
podczas przekierowywania

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

z node.js v0.10.25
do node.js v4.2.3,
więc patrzę man ln i używam

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

To jest praca, jak się spodziewałem.

Alexander Glulkhovtsev
źródło
1
tak naprawdę nie otrzymuję twojej odpowiedzi / punktu, jaki jest cały skrypt, którego użyłeś? Myślę, że mamy ten sam problem
TheArc
1
Myślę, że sugeruje, aby dodać --force do polecenia ln ln -sv ~ / Documents / saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc --force
DropHit
To byłoby ln -sf...
Pathros,
16

Gdy @Rmano odpowiedział w swojej odpowiedzi, argumenty były w niewłaściwej kolejności. Często popełniłem ten sam błąd. W ten sposób znalazłem

Niezawodny sposób na tworzenie dowiązań symbolicznych

Najpierw przejdź do katalogu, w którym chcesz utworzyć łącze

cd ~/Documents/saga

Następnie utwórz link za pomocą jednego argumentu .

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

Spowoduje to utworzenie łącza do bieżącego katalogu o tej samej nazwie co cel.

MadMike
źródło
0

Może być niezwiązany.
Dla mnie link był martwy. Wskazując na nieistniejący folder. Próba zastąpienia go nie powiodła się przy tym komunikacie. ^ Więc wystarczyło proste rm linkName.

AdrianH
źródło
0

Aby dodać nowe informacje, możesz usunąć bieżące dowiązanie symboliczne, a następnie ponownie je utworzyć.

rm  ~/Documents/saga

Następnie ponownie utwórz dowiązanie symboliczne:

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

Mam nadzieję, że pomoże to każdemu, kto nadal napotyka błąd „istnieje plik”.

Andre Suchitra
źródło