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)