Chcę utworzyć dowiązanie symboliczne do /
folderu root ( ) w moim katalogu domowym. Jeśli jednak spróbuję tego, dostanę
~$ ln -s /
ln: failed to create symbolic link './': File exists
Oczywiście mogę to zrobić za pomocą Nautilus Ctrl+ D, więc wiem, że to możliwe.
Jak to zrobić za pomocą terminala?
command-line
filesystem
symbolic-link
Ankur S.
źródło
źródło
cd /
? A może chcesz utworzyć link, który będzie się powtarzał w kółko? Przykład:cd root/home/terrance/root/home/terrance/root/home/terrance/root
. . . itp.Odpowiedzi:
Brakuje nazwy linku, powinna być:
Który następnie utworzyłby dowiązanie symboliczne o nazwie root w twoim katalogu domowym. Prawidłowe użycie to:
Wyświetlany komunikat o błędzie jest taki, że
./
zawsze istnieje i nie można utworzyć łącza o tej nazwie, najlepiej użyćln
polecenia 2 z obydwoma parametrami, aby zapobiec błędnemu powiązaniu.Od
man ln
:Ostatnim parametrem jest
<link-name>
domyślnie ostatnia część celu. Kiedy więc celem jest/path/dir
nazwa łącza, domyślnie będzie to nazwa,dir
jeśli nie zostanie podana. 1 A jeśli na przykład utworzysz za~/etc
pomocą,mkdir ~/etc
a następnie uruchomiszln -s /etc
w~
nim, nie możesz utworzyć łącza, ponieważ nazwa / katalog już istnieje. 3)Możesz zobaczyć link utworzony w twoim katalogu domowym (tutaj jako przykład, oczywiście możesz nazwać go tak, jak chcesz):
1 Podziękowania dla @thomasrutter za zwrócenie na to uwagi.
2 Zobacz także
man link
iman symlink
3 Podziękowania dla @steeldriver za podanie przykładu w komentarzach.
4 Część podkreślona do podkreślenia w tekście, ponieważ jest istotna dla pytania.
źródło
ln -s /etc
jedno pytanie: dlaczego polecenie powinno działać, ale nie to? Dzięki za odpowiedź,/
może być rootem lub może być składnikiem ścieżki, więc program nie może wiedzieć, co teraz oznacza./etc
jest po prostu wyraźną ścieżką do odróżnienia../
będzie istniał - mało prawdopodobne. Spróbuj najpierw, a potem - dostaniesz./etc
mkdir etc
ln -s /etc
File exists
/some/dir
nazwa łącza, domyślnie będzie to nazwa,dir
jeśli nie zostanie podana. Kiedy cel jest po prostu/
, to nie zadziała.File Exists
wynik. Nie znaczy to, że i tak ma to znaczenie, ponieważ jest to przypadek zdegenerowany