Dowiązania (linki) twarde i symboliczne
Dowiązania twarde (hard links) Dowiązanie twarde to utworzenie nowej nazwy dla istniejącego pliku. Jeśli wyobrazimy sobie plik jako jego nazwę i dane na które ta nazwa wskazuje to można powiedzieć, że dowiązanie twarde to utworzenie nowej nazwy wskazującej na te same dane. Polecenie to jest podobne do kopiowania pliku z tym, że przy kopiowaniu tworzona jest niezależna kopia pliku a przy dowiązaniu twardym tworzona jest tylko nowa nazwa, która wskazuje na ten sam istniejący już plik. Do tworzenia dowiązań twardych służy polecenie ln. Używamy go następująco: ln cel_dowiązania dowiązanie gdzie: cel_dowiązania - plik do którego chcemy zrobić dowiązanie dowiązanie - plik, który będzie stanowił dowiązanie do pierwszego
Przykład Przykład. Weźmy pod uwagę plik "dorota" znajdujący się na pulpicie, którego ścieżka jest następująca: ~/Desktop/dorota. W moim przypadku jest to /home/lukasz99/Desktop/dorota. (Znak "~" oznacza katalog domowy użytkownika). Na pulpicie znajduje się katalog "Katalog1" w którym chcemy zrobić dowiązanie do "dorota". Ścieżka do katalogu to ~/Desktop/Katalog1. Chcemy zrobic dowiązanie o nazwie "aneta". Wówczas cel dowiązania i dowiązanie będą następujące: cel dowiązania - ~/Desktop/dorota dowiązanie - ~/Desktop/Katalog1/aneta Polecenie ln będzie wyglądało następująco: $ ln ~/Desktop/dorota ~/Desktop/Katalog1/aneta
Przykład cd Polecenie to utworzy nam w katalogu "Katalog1" plik "aneta", który będzie dowiązaniem do pliku "dorota" znajdującego się na pulpicie (w katalogu ~/Desktop). W ten sposób nadaliśmy plikowi nową nazwę, która jest równoprawna ze starą. Oba pliki mają taką samą (wskazują na tą samą) zawartość. Liczbę dowiązań do plików można sprawdzić wydając polecenie ls -l, które listuje zawartość katalogu podając kilka parametrów plików w nim zawartych. Jeśli wydamy to polecenie w katalogu "Katalog1" otrzymamy jeden wpis dotyczący pliku "aneta".
Napisałem, że polecenia ln używa się podając dowiązanie i cel dowiązania, ale parametr dowiązanie nie jest obowiązkowy. Jeżeli go nie podamy, podając tylko cel dowiązania to dowiązanie zostanie utworzone w katalogu w którym się akurat znajdujemy. Dowiązanie będzie miało taką samą nazwę jak oryginalna. Rozpatrzmy naszą początkową sytuację. Jeśli chcemy utowrzyć dowiązanie do ~/Desktop/dorota w katalogu ~/Desktop/Katalog1 wystarczy w tym katalogu wydać polecenie: $ ln ~/Desktop/dorota Polecenie to utworzy w katalogu ~/Desktop/Katalog1 dowiązanie do ~/Desktop/dorota ale o nazwie dorota (~/Desktop/Katalog1/dorota). Jeżeli chcemy utworzyć dowiązanie o nazwie aneta, a wydajemy je z katalogu ~/Desktop/Katalog1, wystarczy wydać polecenie: $ ln ~/Desktop/dorota aneta Jak widać nie trzeba wpisywać pełnych nazw plików jeśli wydajemy polecenie z katalogu w którym ma znajdować się dowiązanie. (Analogicznie byłby z nazwą dorota jeśli polecenie wydawalibyśmy z katalogu ~/Desktop).
Dowiązania symboliczne (symbolic links) Link symboliczny to dowiązanie do pliku wskazujące na jego nazwę. O ile dowiązanie twarde to była nowa nazwa wskazująca na plik tak samo jak stara to link symboliczny wskazuje na nazwę pliku, która dopiero wskazuje na plik. Linki symboliczne tworzy się analogicznie jak dowiązania twarde tylko dodając do polecenia ln parametr -s. Na przykład ln -s plik1 plik2 utowrzy plik2 jako dowiązanie symboliczne do plik1.
Przykład Wracając do naszego pierwotnego przykładu czyli pliku ~/Desktop/dorota i katalogu ~/Desktop/Katalog1. Jeżeli chcemy utworzyć dowiązanie do "dorota" o nazwie "aneta", które będzie się znajdowało w katalogu "Katalog1", ale tym razem ma to być link symboliczny, wydajemy analogiczną komendę ale z parametrem -s: $ ln -s ~/Desktop/dorota ~/Desktop/Katalog1/aneta