Linki (dowiązania)

Damian Stelmach

Ostatnia kwestia jak zajmiemy się w tej serii wpisów będą linki zwane dowiązaniami. Sprawa dość prosta jeśli chodzi o samą mechanikę jak i praktyczne wykorzystanie. Czym są linki no to generalnie każdy z Was powinien już wiedzieć. W ogólnym pojęciu link wskazuje na jakiś inny obiekt, plik lub jego zawartość.

W systemach Linux występują dwa rodzaje dowiązań, linków: twarde oraz symboliczne. Dowiązanie twarde tworzy nową nazwę dla zasobu, zapisując ją w nowej lokalizacji (nie kasując poprzedniej), a sam link nie odwołuje się do pliku samego w sobie, ale tylko do jego zawartości. Brzmi tajemniczo natomiast jest proste w działaniu. Załóżmy, że mamy plik o nazwie plik.txt z zawartością:

teskt1 teskt2 teskt3

Wykonajmy teraz dowiązanie do tej zawartości, zapisane w katalogu o nazwie link. Polecenie wyglądało będzie tak:

ln plik.txt link/link_do_plik.txt
gdzie ln to polecenie uruchamiające tworzenie dowiązania, plik.txtto nazwa zasobu, do którego tworzymy dowiązanie, a link_do_plik.txt to nazwa dowiązania.

Od teraz ten nowy plik zawiera te same dane co plik źródłowy, a my utworzyliśmy sobie nową nazwę do zasobu

 teskt1 teskt2 teskt3

Jeśli usuniemy plik źródłowy, czyli plik.txt, to ten nowy plik, czyli link_do_plik.txt pozostanie na dysku wraz z zawartością.

W przypadku drugiego rodzaju dowiązań, zwanych symbolicznymi, sprawa jest dużo prostsza, te dowiązania w swoim działaniu są bardzo podobne do skrótów jakie znamy chociażby z systemu Windows. Wskazują one zwyczajnie na jakiś plik. Skasowanie pliku źródłowego spowoduje, że link, dowiązanie, po prostu przestanie działać prawidłowo. Podobnie z resztą jak skrót w Windowsie.

Utwórzmy teraz dowiązanie symboliczne do pliku o nazwie plik2.txt. Możemy to zrobić np. tak:

ln -s plik2.txt kat/nowy_plik2.txt

Kiedy wyświetlimy zawartość katalogu, w którym zapisaliśmy dowiązanie miękkie, to zobaczymy na jaki plik wskakuje nam link:

lrwxrwxrwx 1 damian damian 9 Feb 24 12:23 nowy_plik2.txt -> plik2.txt

Skasowanie pliku źródłowego wiązać się będzie oczywiście z tym, że taki link przestanie nam działać.

Zastosowanie dowiązań jest bardzo powszechną praktyką na systemach opartych na jądrze Linux. Ja ostatnio korzystałem z tego rozwiązania konfigurując serwer webowy Apache, tam włączanie poszczególnych modułów może odbywać się właśnie za pomocą dowiązań.

Następny wpis