Dowiązanie twarde

Z Wikipedii, wolnej encyklopedii

Dowiązanie twarde, łącze stałe (ang. hard link) – referencja wskazująca na istniejącą zawartość pliku lub katalogu (w przypadku linuksowych systemów plików jest to i-węzeł) umieszczona w tym samym systemie plików. Dla systemu operacyjnego dowiązanie twarde jest dodatkową nazwą, której można użyć w celu odwołania się do zawartości danego obiektu – plik z n dowiązaniami ma n + 1 nazw. Aby obiekt został usunięty z systemu plików, wpierw muszą zostać usunięte wszystkie odwołujące się do niego dowiązania twarde. Stąd funkcja systemowa w języku C do kasowania plików nosi nazwę unlink – kasowany nie jest sam plik, a jedynie jego nazwa oraz dekrementowany jest wskaźnik dowiązań twardych (dopiero gdy spadnie on do zera, system automatycznie zwalnia zajętą przestrzeń dyskową). Ponadto ważną cechą dowiązań twardych jest ich ograniczenie do tej samej partycji, na której znajduje się obiekt źródłowy.

Domyślnie, zaraz po utworzeniu każdy folder w uniksowych systemach plików posiada dwa dowiązania twarde – swoją nazwę (np. /home/fizyk/przyklad) oraz wewnętrzne dowiązanie . (kropka). Dodatkowo, jeśli folder zawiera podfoldery, to w każdym z nich znajduje się dowiązanie .. (dwie kropki) wskazujące na niego jako folder nadrzędny. Ze względu na możliwość powstawania nieskończonych pętli poprzez tworzenie nieprawidłowych dowiązań do katalogów, niektóre systemy nie pozwalają na tworzenie nowych tego typu dowiązań lub pozwalają na to tylko użytkownikowi root.

Systemy uniksowe[edytuj | edytuj kod]

W systemach Unix i uniksopodobnych do stworzenia dowiązania twardego służy polecenie ln w postaci:

ln plik_istniejący dowiązanie_twarde

Numer i-węzła takiego dowiązania oraz liczbę dowiązań twardych można sprawdzić wydając polecenie:

 $ ls -li dowiązanie_twarde
 360023 -rw-r----- 2 linio linio 143 2002-12-08 20:21 dowiązanie_twarde

gdzie kolejne od lewej pola (rozdzielone spacjami) to:

  1. numer i-węzła (tutaj: 360023),
  2. typ pliku wraz z prawami dostępu,
  3. liczba dowiązań twardych (tutaj: 2)

Systemy operacyjne Windows[edytuj | edytuj kod]

Użycie dowiązań twardych w środowisku Microsoft Windows jest znacznie mniej rozpowszechnione, głównie ze względu na odmienną strukturę stosowanego systemu plików. Na partycjach z systemem plików NTFS możliwe jest tworzenie dowiązań twardych (nazwanych w systemie Windows łączami stałymi) przy pomocy polecenia fsutil jak w poniższym przykładzie:

fsutil hardlink create łącze_stałe.pdf plik_istniejący.pdf

Polecenie to pojawiło się w systemie Windows XP i jest dostępne we wszystkich kolejnych wersjach Windows. Aby je wykonać w starszych wersjach systemu Microsoftu, wymagane jest posiadanie uprawnień administracyjnych, natomiast od Windows 10 Creators Update takiego wymogu już nie ma.

Zobacz też[edytuj | edytuj kod]