Chcę zrobić dowiązanie symboliczne w Linuksie. Napisałem to polecenie Bash, w którym pierwsza ścieżka to folder, do którego chcę prowadzić link, a druga to skompilowane źródło.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
Czy to jest poprawne?
Odpowiedzi:
Aby utworzyć nowe dowiązanie symboliczne (zakończy się niepowodzeniem, jeśli dowiązanie symboliczne już istnieje):
Aby utworzyć lub zaktualizować dowiązanie symboliczne:
źródło
ln
Składnia jest podobna docp
składni, np . miejsce docelowe źródła .cp
jestCoPy
,ln
jestLiNk
. Pierwsza i trzecia litera.Gdzie
-s
czyni to symbolicznym.źródło
unlink LINK_NAME
ln -s where-the-symlink-should-point where-to-place-the-symlink-itself
.rm
, ale większość ludzi nie wie, aby usunąć końcowy link/
.źródło
Możesz zajrzeć na stronę manuala tutaj:
http://linux.die.net/man/1/ln
źródło
(Ponieważ obraz ASCII jest wart tysiąca znaków.)
Strzała może być pomocnym mnemonikiem, zwłaszcza, że prawie dokładnie tak wygląda u Emacsa.
I duże zdjęcie, aby nie pomylić go z wersją systemu Windows
Linux:
Windows:
Możesz również spojrzeć na to jako
Nie
from-here
powinien jeszcze istnieć, należy go stworzyć, ato-here
powinien już istnieć (IIRC).(Zawsze mylę się, czy różne polecenia i argumenty powinny dotyczyć wcześniej istniejącej lokalizacji, czy też takiej, którą należy wykonać).
EDYCJA: Wciąż dla mnie powoli zapada się; Mam inny sposób, który napisałem w swoich notatkach.
źródło
dired
jest to bardzo łatwe, gdy umieścisz kursor nad celem, naciśnijS
i wpisz katalog, w którym chcesz utworzyć łącze. Skraca lukę między wyobrażeniem sobie pożądanego rezultatu a pisaniem. Zobacz gnu.org/software/emacs/manual/html_node/emacs/… .http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
źródło
man ln
, która nazywa toln -s TARGET LINK_NAME
Do pierwotnego pytania:
To rzeczywiście stworzy dowiązanie symboliczne (
-s
) z pliku / katalogu:do twojego nowego linku
Oto kilka sposobów na zapamiętanie:
Po pierwsze, jest strona man dla
ln
. Możesz uzyskać do niego dostęp, wyszukując hasło „man ln” w google, lub po prostu otwórz okno terminala i wpisz,man ln
a otrzymasz te same informacje. Strona podręcznika wyraźnie stwierdza:Jeśli konieczność przeszukiwania lub czytania strony podręcznika za każdym razem nie jest dla ciebie, być może łatwiej będzie ci pamiętać, że wszystkie polecenia nix działają w ten sam sposób:
cp
kopiuje istniejący plik (pierwszy argument) do nowego pliku (drugi argument).mv
przenosi plik, który obecnie istnieje (pierwszy argument) w nowe miejsce (drugi argument)Podobnie
ln
łączy plik, który obecnie istnieje (pierwszy argument) z nowym łączem (drugi argument) *Ostatnią opcją, którą chciałbym zasugerować, jest stworzenie własnych stron podręcznika, które są łatwe do odczytania i łatwe (dla ciebie) do znalezienia / zapamiętania. Po prostu zrób prosty skrypt powłoki, który da ci wskazówkę, której potrzebujesz. Na przykład ♦ :
W pliku .bash_aliases możesz umieścić coś takiego:
Następnie, gdy będziesz go potrzebować, po prostu wpisz w wierszu polecenia
cmds
odpowiednią składnię, abyś mógł ją szybko odczytać i zrozumieć. Możesz sprawić, by te funkcje były tak zaawansowane, jak chcesz, aby uzyskać potrzebne informacje - to zależy od Ciebie. Możesz nawet sprawić, by były interaktywne, więc wystarczy postępować zgodnie z instrukcjami .. coś takiego:* - no cóż, oczywiście wszyscy mogą przyjmować różne parametry i robić różne rzeczy oraz mogą pracować na plikach i katalogach ... ale założenie jest takie samo
♦ - przykłady z użyciem powłoki bash
źródło
źródło
Tworzenie dowiązań symbolicznych lub dowiązań miękkich w systemie Linux:
Otwórz monit Bash i wpisz poniższe polecenie, aby utworzyć dowiązanie symboliczne do pliku:
A) Przejdź do folderu, w którym chcesz utworzyć miękki link i wpisz polecenie, jak wspomniano poniżej :
B) Przejdź do ścieżki nowej nazwy pliku i wpisz :
$ ls -lrt (To see if the new-file is linked to the file or not)
Przykład:
źródło
ln -s sourcepath linkpathname
Uwaga:
-s tworzy dowiązania symboliczne zamiast dowiązań twardych
źródło
Jeśli znajdujesz się w katalogu, w którym chcesz utworzyć dowiązanie symboliczne, zignoruj drugą ścieżkę.
Stworzy symlink
target
wewnątrzmyfolder
.Ogólna składnia
źródło
To jest przepełnienie stosu, więc zakładam, że chcesz kod:
Cały poniższy kod zakłada, że chcesz utworzyć dowiązanie symboliczne o nazwie
/tmp/link
dowiązanie do/tmp/realfile
.UWAGA : Chociaż ten kod sprawdza błędy, NIE sprawdza, czy
/tmp/realfile
rzeczywiście istnieje! Wynika to z faktu, że martwy link jest nadal aktualny i w zależności od kodu możesz (rzadko) chcieć utworzyć link przed rzeczywistym plikiem.Shell (bash, zsh, ...)
Naprawdę proste, tak jak zrobiłbyś to w linii poleceń (która jest powłoką). Cała obsługa błędów jest wykonywana przez interpreter powłoki. Ten kod zakłada, że masz działającego interpretera powłoki
/bin/sh
.W razie potrzeby nadal możesz zaimplementować własną obsługę błędów za pomocą
$?
zmiennej, która zostanie ustawiona na 0 tylko wtedy, gdy łącze zostanie pomyślnie utworzone.C i C ++
symlink
zwraca 0 tylko wtedy, gdy można utworzyć łącze. W innych przypadkach używam,perror
aby powiedzieć więcej o problemie.Perl
Ten kod zakłada, że masz perl 5 interpreter w
/usr/bin/perl
.symlink
zwraca tylko 1, jeśli można utworzyć łącze. W innych przypadkach drukuję przyczynę niepowodzenia na standardowym wyjściu błędu.źródło
Chciałbym przedstawić prostszą wersję angielską opisów już przedstawionych.
Polecenie „ln” tworzy PLIK-link, a „-s” określa, że typ łącza będzie symboliczny. Przykład pliku z dowiązaniem symbolicznym można znaleźć w instalacji WINE (użycie „ls -la” do wyświetlenia jednego wiersza zawartości katalogu):
Standardowe informacje o pliku znajdują się po lewej stronie (chociaż zauważ, że pierwszy znak to „l” dla „linku”); nazwa pliku to „a:”, a „->” oznacza także, że plik jest linkiem. W zasadzie mówi WINE, w jaki sposób Windows „Drive A:” ma być skojarzony z dyskietką w Linuksie. Aby faktycznie utworzyć dowiązanie symboliczne PODOBNE do tego (w bieżącym katalogu i zrobić to dla WINE jest bardziej skomplikowane; użyj narzędzia „winecfg”):
źródło
Aby utworzyć dowiązanie symboliczne / dowiązanie miękkie, użyj:
na przykład:
źródło
Istnieją dwa rodzaje linków:
dowiązania symboliczne: odwołaj się do ścieżki symbolicznej wskazującej abstrakcyjne położenie innego pliku
twarde linki: odnoszą się do konkretnej lokalizacji danych fizycznych.
W twoim przypadku dowiązania symboliczne:
możesz odnieść się do http://man7.org/linux/man-pages/man7/symlink.7.html
możesz utworzyć zbyt twarde linki
Twardy link do pliku jest nie do odróżnienia od oryginalnej pozycji katalogu; wszelkie zmiany w pliku są faktycznie niezależne od nazwy użytej w odniesieniu do pliku. Dowiązania twarde zwykle nie odnoszą się do katalogów i mogą nie obejmować systemów plików.
źródło
Linki są w zasadzie dwóch rodzajów:
Łącza symboliczne (miękkie): łącze do ścieżki symbolicznej wskazującej abstrakcyjne położenie innego pliku
Twarde linki: link do konkretnej lokalizacji danych fizycznych.
Przykład 1:
Powyżej jest przykładem twardego linku, w którym możesz mieć kopię swoich fizycznych danych.
Przykład 2:
Powyższe polecenie utworzy dowiązanie symboliczne do pliku1.txt.
Jeśli usuniesz plik źródłowy, nie będziesz miał nic do miejsca docelowego w wersji miękkiej.
Kiedy to zrobisz:
ls -lai
Zobaczysz, że dla dowiązań symbolicznych jest inny numer i-węzła.
Aby uzyskać więcej informacji, możesz przeczytać stronę podręcznika ln w systemie Linux.
źródło
hard link where you can have a copy of your physical data
- Myślę, że nie tworzymy kopii danych fizycznych. Po prostu inna nazwa dla tych samych danych fizycznych.Trochę mylę terminologie „cel” i „katalog” w informacjach o człowieku.
Celem jest folder, do którego prowadzimy dowiązanie, a katalog to rzeczywiste dowiązanie symboliczne (nie katalog, do którego będziesz dowiązanie symboliczne), jeśli ktoś doświadcza tego samego zamieszania, nie czuj się samotny.
Oto moja interpretacja tworzenia dowiązania symbolicznego (w systemie Linux):
Możesz przejść do folderu, w którym chcesz utworzyć dowiązanie symboliczne, i uruchomić polecenie lub podać PEŁNĄ ŚCIEŻKĘ dla swojego dowiązania symbolicznego zamiast NAZWA-SWOJEGO SYMLINKA.
LUB
Mam nadzieję, że to pomaga tym (wciąż) nieco zdezorientowanym.
źródło
Jak utworzyć dowiązanie symboliczne w włóczęgi. Kroki:
źródło