Jak utworzyć miękki lub symboliczny link?


Odpowiedzi:


665

Zobaczyć man ln.

Aby utworzyć dowiązanie symboliczne, do /usr/bin/barktórego odwołuje się oryginalny plik /opt/foo, użyj:

ln -s /opt/foo /usr/bin/bar

Będziesz musiał zastosować powyższe polecenie jako root (tj. Z sudo).


Używam: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineotrzymuję błąd:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
Dokumentacja Ubuntu mówi: „Domyślnie tworzy twarde linki, dowiązania symboliczne z --symbolic”. Czy powyższe rozwiązanie stworzy symboliczne łącze, o które poprosi OP?
Tanay

4
Myślałem, że César chciał umieścić swoje pliki w / opt i / usr / bin, aby mieć dowiązanie symboliczne, a nie odwrotnie.
nieszczęście

4
@mishap ma rację, jeśli o mnie chodzi. Jest na odwrót.
Daniel Szmulewicz,

2
@kevinmicke po tym, jak twoje wyjaśnienie w końcu uświadomiło sobie, że wyjaśnienie odpowiedzi zostało podane w odwrotnej kolejności od polecenia, co zmusiło mój mózg (i innych) do przeczytania go wstecz
Andrew


21

Jeśli plik wykonywalny „p4v” znajduje się w katalogu / opt / bin / p4v, możesz po prostu uruchomić:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

Lepiej byłoby dodać / opt / bin (lub gdziekolwiek plik wykonywalny) do swojej ścieżki:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profilebyłoby lepiej dla ustawienia $PATH.
Lekensteyn,

możesz edytować, /etc/environmentaby zmodyfikować PATH w całym systemie.
Michał Šrajer,

4

Sprawdź przez to lokalizację oprogramowania.

which application-name #replace for the application you are looking for

na przykład

which skype

wyjście będzie to.

/usr/bin/skype 

Aby utworzyć miękki link. na przykład chcesz utworzyć miękki link skypena pulpicie

ln -s /usr/bin/skype ~/Desktop/

Aby uzyskać więcej informacji na temat ln.

man ln

lub

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

Uwaga, działa to, jeśli oba węzły znajdują się poniżej ciebie w tym samym drzewie. Możesz użyć notacji względnej

  • -s powoduje, że jest to dowiązanie symboliczne
  • -n umożliwia utworzenie dowiązania symbolicznego typu folderu

Witamy na askubuntu.com. W takim przypadku $wskazanie wiersza polecenia jest wyborem stylu i prawdopodobnie nie będzie stanowić problemu. Należy jednak pamiętać, że umieszczanie elementów w bloku kodu innym niż kod i jego wynik może powodować zamieszanie.
J. Starnes,

1

Ten szablon był dla mnie bardziej pomocny niż powyższe odpowiedzi. Prawdopodobnie nie bardziej poprawne, po prostu mniej zaciemnione:

ln -s <path/to/real/file-or-folder> <symlink path>

Wystarczy wymienić części w <>„s


0

Jeśli to mówi target is not a folder, oznacza to, że w nazwach folderów są spacje, np .: New Folderma spację

Musisz edytować ścieżkę i dodać odwrotny ukośnik \po każdym spacji w ścieżkach

na przykład:

ln -s /opt/bin /usr/var/New\ Folder

3
To nie jest odpowiedź na pytanie PO. Poczekaj, aż będziesz mieć wystarczającą reputację, aby dodać komentarze.
derHugo,

0

Odkryłem, że łatwiej jest przejść do miejsca, w którym chcesz, aby link był, a następnie utworzyć link za pomocą sudo ln -s /path/to/source/file, niż robić ln -s target source.

Więc w twoim przypadku zrobiłbym cd /usr/binto sudo ln -s /opt/bin/pv4. W moim przypadku inny sposób nie zadziałał.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.