ln (Unix)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

lnUniksowy program służący do tworzenia dowiązań twardych oraz symbolicznych.

Użycie[edytuj | edytuj kod]

 ln [opcje] źródło cel
  • źródło – plik lub pliki do których tworzy się dowiązanie
  • 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

Opcje[edytuj | edytuj kod]

Single UNIX Specification definiuje dwie opcje:

  • -s – tworzy dowiązania symboliczne.
  • -f – wymusza (ang. force) umieszczenie dowiązań, nawet gdy istnieją już pliki o tej samej nazwie.

Wersja z GNU Coreutils dopuszcza także m.in:

  • -b – stworzenie kopii zapasowej plików (ang. backup)
  • -v – wyświetlanie szczegółowych informacji (ang. verbose mode)

Przykłady[edytuj | edytuj kod]

 $ ln abc def

Tworzy dowiązanie twarde z pliku abc w pliku def.

Dowiązania symboliczne[edytuj | edytuj kod]

Jeżeli w pustym katalogu test utworzymy 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 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 (np. 969817). Teraz można się przekonać, ż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 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 dostępne.

Linki zewnętrzne[edytuj | edytuj kod]

  • ln -- specyfikacja Single Unix Specification

Strony man[edytuj | edytuj kod]