Ln (Unix)
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 (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
- ln -- strona manuala z GNU Coreutils
ln(1)– strona podręcznika systemu OpenBSDln(1)– strona podręcznika systemu Linux
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.
- 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:
- 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.
- 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.
- 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.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.