W dzisiejszym wpisie chciałbym poruszyć kwestie związane z dowiązaniami symbolicznymi (symbolic link). W systemach z rodziny GNU/Linux występują dwa rodzaje: Hard Link oraz Soft Link. Służą one do tworzenia obrazowo mówiąc skrótów do plików, jednak nie do końca jest to takie proste w działaniu.
Soft/Hard Link GUN/Linux Nieco teorii…
Obydwa sposoby o których wspomniałem tworzą dowiązania do pliku docelowego, a mówiąc dokładniej do jego zawartości. Hard Link tworzy nie tyle link do pliku co jego kopię, oznacza to, że jeżeli usuniesz pierwotny plik, jego zawartość będzie nadal dostępna w kopi pod inną nazwą. Jeżeli chodzi o Soft Link tutaj sytuacja jest zupełnie inna, tworzy on dowiązanie symboliczne do pliku źródłowego, czyli znany z systemów Windows skrót. Jeżeli plik źródłowy zostanie usunięty link stanie się bezużyteczny, ponieważ będzie odnosił się do pliku, którego nie ma w systemie plików.
Kilka faktów odnośnie Hard Link:
- Nie można utworzyć Hard Link dla katalogu,
- Hard Link posiada te same uprawnienia oraz tę samą ścieżkę co i oryginalny plik,
- Zmiana uprawnień na Hard Link powoduje ich zmianę również na oryginalnym pliku,
- Utworzenie Hard Link możliwe jest tylko na pliku w którym posiadasz uprawnienie min. read, nie dotyczy to oczywiście użytkownika root,
- Hard Link nie działa jeżeli konieczne jest jego utworzenie pomiędzy różnymi systemami plików,
- Hard Link pozostaje działający nawet gdy zmienisz nazwę któregokolwiek z plików lub nawet obydwu,
Kilka faktów odnośnie Soft Link:
- Możliwe jest wykonanie Soft Link dla katalogu,
- Soft Link działa również pomiędzy różnymi systemami plików, partycji etc.,
- Soft Link zostanie utracony gdy zmianie ulegnie nazwa pliku docelowego lub jego miejsce zapisu,
- Soft Link przy analizie uprawnień na pierwszym miejscu od lewej posiada literkę 'l’,
- Domyślne uprawnienia dla Soft Link to 777
Praktyczne przykłady
Hard Link możesz utworzyć przy pomocy poniższego polecenia
1 |
ln /tmp/mainfile.txt /tmp/hardlinkmainfile.txt |
Aby wyświetlić utworzony Hard Link użyj poniższego polecenia.
1 2 |
ls -li /tmp 102113012 -rw-r--r--. <strong>2</strong> root root 20 Apr 3 17:20 mainfile.txt 102113012 -rw-r--r--. <strong>2</strong> root root 20 Apr 3 17:20 hardlinkmainfile.txt |
Soft Link przy tworzeniu używa praktycznie identycznego polecenia. Jedyna różnica do przełącznik -s tuż za ln.
1 |
ln -s /tmp/mainfile.txt /tmp/softlinkmainfile.txt |
Wyświetlenie listy Soft Link daje nieco inny wynik.
1 |
ls -li /tmp |
1 |
02113022 <strong>l</strong>rwxrwxrwx. 1 root root 20 Apr 3 17:34 softlinkmainfile.txt -> /tmp/mainfile.txt |
Zapraszam na kolejny wpis odnośnie systemu plików, które możesz spotkać pracując z systemami GNU/Linux.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).