Ln (Unix)

lnuniksowy 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 (ang. force) 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 (ang. backup);
-v – wyświetla szczegółowe informacje (ang. verbose mode).

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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.