ln – uniksowy program służący do tworzenia dowiązań twardych oraz symbolicznych.
Użycie ln [opcje] źródło cel
gdzie: źródło – plik lub pliki, do których tworzy się dowiązania; cel – nazwa pliku lub katalogu; jeśli cel jest nazwą pliku, stworzony zostanie link o konkretnej – podanej nazwie, jeśli zaś cel jest folderem zostaną w nim utworzone dowiązania do źródła, o nazwach identycznych z nazwami źródłowymi plików.
Opcje Single UNIX Specification definiuje dwie opcje: -s – tworzy dowiązania symboliczne zamiast twardych; -f – wymusza () tworzenie dowiązań, nawet, gdy istnieją już pliki o tej samej nazwie (nadpisuje je).
Wersja z GNU Coreutils dopuszcza także m.in.: -b – tworzy kopie zapasowe plików (); -v – wyświetla szczegółowe informacje ().
Przykłady ln abc def
Tworzy w pliku def dowiązanie twarde do pliku abc.
Dowiązania symboliczne Jeżeli w pustym katalogu test utworzony zostanie plik źródło o treści abc: $ ls -ali total 8 969797 drwxr-xr-x 2 test test 4096 Dec 9 09:10 . 1036602 drwxr-xr-x 3 test test 4096 Dec 9 09:10 .. $ echo abc > źródło $ ls -ali total 12 969797 drwxr-xr-x 2 test test 4096 Dec 9 09:11 . 1036602 drwxr-xr-x 3 test test 4096 Dec 9 09:10 .. 969768 -rw-r--r-- 1 test test 10 Dec 9 09:11 źródło to liczba reference count zwiększy się z 8 do 12, a dane zostaną zapisane pod i-węzłem np. 969768.
Jeżeli następnie w tym samym katalogu stworzy się dowiązanie symboliczne link: $ ln -s źródło link $ ls -ali total 12 969797 drwxr-xr-x 2 test test 4096 Dec 9 09:11 . 1036602 drwxr-xr-x 3 test test 4096 Dec 9 09:10 .. 969768 -rw-r--r-- 1 test test 10 Dec 9 09:11 źródło 969817 lrwxrwxrwx 1 test test 8 Dec 9 09:11 link -> źródło to liczba reference count nie zwiększy się, ale link zostanie zapisany pod innym i-węzłem, tu np. 969817.
Teraz można przekonać się, że plik link jest dowiązaniem symbolicznym: $ file link link: dowiązanie symboliczne do `źródło` a także odczytać jego zawartość: $ cat link abc jednakże, gdyby usunąć plik źródło, odczyt taki byłby niemożliwy: $ rm -f źródło $ ls -ali total 8 969797 drwxr-xr-x 2 test test 4096 Dec 9 09:36 . 1036602 drwxr-xr-x 3 test test 4096 Dec 9 09:32 .. 969817 lrwxrwxrwx 1 test test 8 Dec 9 09:11 link -> źródło $ file link link: zerwane dowiązanie symboliczne do `źródło` $ cat link cat: link: Nie ma takiego pliku lub katalogu
Gdyby jednak link był dowiązaniem twardym, to dane byłyby nadal dostępne.
Linki zewnętrzne ln -- specyfikacja Single Unix Specification
Strony man ln -- strona manuala z GNU Coreutils
Kategoria:Polecenia Unix