Dowiązania w Linuksie są bardzo popularne i bardzo często używane. Tworzy się je poleceniem ln
, przy czym uruchomienie z opcją -s
tworzy link miękki.
Systemy plików ext zawierają informacje o plikach w i-węzłach. Wiele nazw plików może wskazywać na jeden i-węzeł. Każdy i-węzeł zawiera licznik odwołań, czyli liczbę nazw plików, które na niego wskazują. Tak więc stworzenie dowiązania polega po prostu na wpisaniu w pliku w polu i_node
wskaźnika do odpowiedniego i-węzła oraz zwiększeniu jego licznika odwołań. Kiedy dowiązanie jest usuwane, licznik odwołań zostaje zmniejszony przez jądro i jeżeli osiągnie on wartość 0, to i-węzeł jest zwalniany. Na tej właśnie zasadzie działają w Linuksie dowiązania twarde.
Twarde dowiązania muszą być używane w ramach jednego systemu plików. Co więcej nie można tworzyć twardych dowiązań do katalogów, aby zapobiec tworzeniu się cykli w drzewie katalogów.
Jeżeli chodzi o dowiązania miękkie, to zawierają one tylko ścieżkę do pliku właściwego. Kiedy jądro napotyka miękkie dowiązanie podczas pobierania i-węzła, to po prostu przechodzi do ścieżki przez niego wskazywanej. Ponieważ miękkie dowiązanie nie wskazuje bezpośrednio na i-węzeł, to jest możliwe tworzenie takich dowiązań do innych (nawet nieistniejących) dysków. Są one bardzo użyteczne, jako że nie mają tylu ograniczeń jak dowiązania twarde, jednak dostęp do nich jest trochę wolniejszy, jako że jądro musi "od początku" odczytać plik wskazywany przez dowiązanie, a także takie dowiązanie jest plikiem, wiec zajmuje i-węzeł na dysku. Jednak i tak są one bardzo popularne i często używane (za ich pomocą można już tworzyć dowiązania do katalogów).