Linki – inna nazwa dowiązania - pozwalają na korzystanie z plików za pomocą więcej niż jednej nazwy. Polecenie ln wykonuje dołączenie nowej nazwy do istniejącego już pliku, można powiedzieć, że nowa nazwa jest nazwą symboliczną pliku lub jego dowiązaniem. Poniżej przedstawiamy ogólny wygląd polecenia:
ln [ -opcja ] [ nazwa pliku ] [ nazwa dowiązania ]
opcja:
-s → utworzenie dowiązania symbolicznego
Dowiązania – inaczej nazywane też łącznikami - dzielimy na sztywne które tworzymy przy pomocy polecenia ln bez opcji i miękkie, zwane także symbolicznymi, które tworzymy przy pomocy polecenia ln z opcją -s. Usunięcie dowiązania wykonujemy przy pomocy polecenia rm. Różnicy pomiędzy dowiązaniem sztywnym a symbolicznym nie można wyjaśnić bez wprowadzenia pojęcia i-węzła (ang. inode), będącego strukturą, w której jadro przechowuje informacje o pliku.
Polecenie ls wykonane z opcją -i pozwala poznać numer węzła do którego należy plik.
$ ls -il
Najprostszym z dwóch typów linków są linki twarde. Polecenie ln domyślnie tworzy właśnie twarde linki. Poniżej przedstawiamy schemat tworzenia linku twardego. Najpierw w katalogu bieżącym, w linii poleceń, wystukamy polecenie:
$ ls –l
-rwx------ 5 root root 1024 sep 10 12: 30 plik1
-rwx------ 1 root root 56 sep 11 14: 23 plik_data
-rwx------ 1 root root 67 sep 14 11: 30 plik2
-rwx------ 1 root root 123 sep 10 12: 30 plik_dane
-rwx------ 1 root root 123 sep 10 12: 30 plik_obraz
Następnie w linii poleceń wystukajmy:
$ ln plik_data plik_link
Następnie powtórzmy:
$ ls –l
Liczba liczników wzrosła o jeden:
-rwx------ 1 root root 24 sep 10 12: 30 plik1
-rwx------ 2 root root 56 sep 11 14: 23 plik_data
-rwx------ 1 root root 67 sep 14 11: 30 plik2
-rwx------ 1 root root 123 sep 23 12: 45 plik_dane
-rwx------ 1 root root 123 sep 24 12: 56 plik_obraz
-rwx------ 2 root root 56 sep 25 14:23 plik_link
Zwracamy uwagę, że atrybuty skojarzone z czasem powstania nowego obiektu plik_link pozostałe takie same, jak te skojarzone z plikiem plik_data, nie uwzględniając bieżącego czasu (tak samo jak w operacji kopiowania). Wynika to stąd, że jest tylko jeden zbiór danych, mimo że od tej chwili udostępniony na dwa sposoby (pod dwoma nazwami). Druga kolumna od lewej wskazuje liczbę liczników do plików. Innym sposobem sprawdzenia, czy są te same dane pod dwiema różnymi nazwami plików jest obejrzenie tzw. i-węzłów. Każdy obiekt musi mieć własny i-węzeł w którym zawarte są informacje dla plików. Jest istotne by czytelnik zapamiętał, że tzw. twarde linki nie działają w różnych systemach plików i zawsze muszą być lokalne a to oznacza, że użytkownicy mogą tworzyć linki do plików, ale do katalogów już nie.
Linki do katalogów mogą natomiast być tworzone przy pomocy tzw. linków symbolicznych: pozwala na to opcja -s , polecenia ln.
$ ls –l
-rwx------ 5 root root 1024 sep 10 12: 30 plik1
-rwx------ 1 root root 56 sep 11 14: 23 plik_data
-rwx------ 1 root root 67 sep 14 11: 30 plik2
-rwx------ 1 root root 123 sep 10 12: 30 plik_dane
-rwx------ 1 root root 123 sep 10 12: 30 plik_obraz
$ ln -s plik2 plik_symbol
-rwx------ 5 root root 1024 sep 10 12: 30 plik1
-rwx------ 1 root root 56 sep 11 14: 23 plik_data
-rwx------ 1 root root 67 sep 14 11: 30 plik2
-rwx------ 1 root root 123 sep 10 12: 30 plik_dane
-rwx------ 1 root root 123 sep 10 12: 30 plik_obraz
lrwxrwxrwx 1 root root 67 sep 10 12: 30 plik_symbol →
→ plik2
Analizując rezultat egzekucji polecenia należy zauważyć , że:
→ licznik linków do pliku plik2 nie zmienił się
→ w pierwszej kolumnie nowego pliku (plik_symbol) zawsze będzie łańcuch znaków lrwxrwxrwx oznaczający link
→ data i czas nowego linku maja inną datę i inny czas od daty i czasu linku starego, ponieważ są bieżące. Wynika z tego, że został utworzony nowy plik z własnym i-węzłem
→ na prawo od nazwy pliku znajduje się graficzny wskaźnik → pliku do którego ten się odwołuje
→ rozmiar nowego pliku jest rozmiarem tylko samego wskaźnika
Innymi słowy plik_symbol to symboliczna reprezentacja – nazwa – pliku plik2. Bardzo wiele plików systemowych to linki do innych obiektów. Na przykład w katalogu dev znajduje się wiele symbolicznych linków do urządzeń z których można korzystać za pomocą różnych nazw z wieli różnych miejsc. Jakie funkcje może spełnić dowiązanie. Przede wszystkim może ono nam zastąpić długa, pełna ścieżkę dostępu do pliku kilkuznakowym skrótem np.
Kurs Linux - tworzenie i usuwanie linków w Linuxie (polecenie ln)