Komputer & Internet

w domu i zagrodzie

Link symboliczny, twardy i inne skróty

dowiązanie-łącznik

Link symboliczny lub twardy, a prawidłowo dowiązanie lub łącznik, to (w Linuxie) coś w rodzaju windowsowego skrótu do katalogu lub pliku. A dokładnie, to odwrotnie.
Odwrotnie, bo dowiązania w Linuxie były odkąd pamiętam, a Microsoft skróty działające prawie jak łączniki wprowadził w Windows 95. Tak więc windowsowy skrót, to takie prawie linuxowe dowiązanie.

Jakie są różnice między skrótem, a dowiązaniem?


Załóżmy, że mamy plik sprawozdanie.xls, który jest umieszczony w jakimś podkatalogu, a że często go edytujemy, to

  • w Windows na Pulpicie tworzymy do niego skrót
  • w Linuxie na Pulpicie tworzymy do niego dowiązanie

W obu przypadkach dwukliknięte obiekty na pulpicie działają w ten sam sposób – otwierają plik do edycji. Ale przekopiowanie ich na CD czy pendrive, aby przekazać sprawozdanie szefowi czy zarchiwizować przyniesie trochę różne efekty.

  • w Windows przekopiujemy nie sam plik sprawozdanie.xls, tylko skrót do niego
  • w Linuxie przekopiujemy plik sprawozdanie.xls

Jak widać prawie robi różnicę, którą Microsoft zauważył po ćwierć wieku i … spłodził mklink. Wspaniałomyślnie, za free, dorzucił komendę do Windows „WoW”, która teraz jara jego użytkowników.

Ale do rzeczy.
Łącznik do katalogu czy pliku NIE JEST ani skrótem, ani linkiem, bo nie prowadzi do dowiązanego obiektu, tylko wskazuje jego położenie w systemie plików. Różnicę w działaniu bardzo dobrze widać przy wyjściu z dowiązanego katalogu – wracamy do katalogu w którym jest dowiązanie, a nie do nadrzędnego dla dowiązanego.

Dowiązania w Linux

W Linuxie są dwa typy łączników: twarde i symboliczne. Łączniki twarde, zwane też sztywnymi są w Linuxie łącznikami zwykłymi. Podstawowe różnice dla dowiązań twardych i symbolicznych zawiera poniższa tabela.

Łącznik twardy Łącznik symboliczny
Polecenie ln cel nazwa_dowiązania ln -s cel nazwa_dowiązania
Kasowanie dowiązania
rm nazwa_dowiązania
Dowiązanie pliku tak tak
Dowiązanie katalogu nie tak
Dowiązanie do obiektu w tym samym systemie plików tak tak
Dowiązanie do obiektu w innym systemie plików nie tak
Usunięcie dowiązanego obiektu nastąpi dopiero po usunięciu ostatniego łącznika. Wszystkie istniejące łączniki wskazują nieistniejący obiekt.
Usunięcie łącznika Usunięcie ostatniego łącznika usuwa plik! Usunięcie łącznika nie usuwa pliku/katalogu.

Zobacz też Uwagi.

Dowiązania w Windows

Jak wspomniałem wyżej, dowiązania w Windows tworzy polecenie

mklink <opcje> nazwa_dowiązania cel

opcje:

  • /D – dowiązanie do katalogu (symboliczne)
  • /H – dowiązanie do pliku (twarde)
  • /J – punkt połączenia katalogów (junction point)
Uwagi

Dowiązania może tworzyć tylko użytkownik z uprawnieniami administratora i tylko dla obiektów leżących na dyskach z system plików NTFS. No i argumenty polecenia podaje się w odwrotnej kolejności niż dla linuxowego ln – co jest oczywiste w przypadku produktów Microsofta.
Zobacz też Uwagi.

Dowiązania w Windows XP

Microsoft mechanizm tworzenia dowiązań w swoich produktach udostępnił od Windows 2000. Ale nie za darmo, bo trzeba było kupić Win2K Resource Kit. Całe szczęście, że dla wersji XP i Serwer 2003 jest dostępne inne narzędzie, które oferuje tę możliwość za darmo.
Junction pozwala tworzyć dowiązania symboliczne do katalogów w Windows XP.

junction <opcje> nazwa_dowiązania cel

np.

C:\>junction c:\programy "c:\Program Files"

opcje:

  • -s – wyświetla listę dowiązań na wskazanym dysku, np. junction -s c:\
  • -d – usuwa wskazane dowiązanie, np. junction -d c:\programy

Instalacja Junction

Pobieramy Junction i wypakowujemy do katalogu np. Windows/system32.

Uwagi

Junction, tak jak mklink „działa” tylko na NTFS, ale nie tworzy dowiązań twardych – do plików. Nie pozwala też na dowiązania do zasobów sieciowych.

Uwagi dla tworzenia łączników

W każdym przypadku polecenie tworzące dowiązanie tworzy nowy obiekt nazwa_dowiązania. Oznacza to, że plik lub katalog nazwa_dowiązania nie może istnieć przed utworzeniem łącznika, ponieważ polecenie zwróci błąd.

Do czego to ma służyć?

Te same pliki i katalogi można „udostępniać” pod różnymi nazwami, pozwala dowiązywać katalogi w różne miejsca systemu plików, różnym użytkownikom – to wszystko „oszczędza” miejsce na dyskach i upraszcza zarządzanie plikami. W Linuxie jest tak naturalne, jak to, że w dzień świeci słońce, więc zalety tego, że jest jasno są oczywiste.

Przykład z DopBoxem

DropBox synchronizuje zawartość określonego katalogu z zawartością dysku w chmurze. Aby wysłać do niej jakiś katalog, po prostu trzeba go przekopiować do synchronizowanego katalogu. Właśnie, przekopiować. A nie prościej dowiązać wysyłany katalog do jakiegoś folderu w katalogu Dropboxa.

Tags:

About

View all posts by

2 Responses

  1. xcxc says

    ma od dawna – przykładem katalog winsxs od Visty w górę

  2. Patryk says

    Bardzo fajne zestawienie roznic linkow twardych i symbolicznych. Nie wiedzialem też że Winda też je ma. W koncu :D

POST A COMMENT


Aby udowodnić, że jesteś człowiekiem, a nie spambotem proszę wykonać test poniżej.


*