Content Protection by DMCA.com

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, pendrive czy dołączenie jako załącznik e-mail, aby przekazać sprawozdanie szefowi czy zarchiwizować przyniesie odmienne 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.

Przykłady

Na dysku C: i D: mamy katalog test, czyli:

  • C:\test
  • D:\test

W katalogu C:\test tworzymy skrót i łącznik symboliczny do katalogu D:\test;
DIR C:\test zawraca następujący wynik:

 Katalog: C:\test

2022-01-15  16:19    <SYMLINKD>     test_dowiazanie [d:\test]
2022-01-15  16:19               659 test_skrot.lnk
               1 plik(ów)                659 bajtów
               3 katalog(ów)  157 098 913 792 bajtów wolnych
Łącznik symboliczny i skrót
Tak to wygląda w Eksploratorze Windows.
Łącznik symboliczny i skrót
Tak wygląda w Total Commanderze.
Właściwości skrótu
Właściwości skrótu
Właściwości dowiązania
Właściwości dowiązania

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.

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 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.
Windows także docenił ich zalety. Oto zawartość katalogu C:\Users\Default

 Katalog: C:\Users\Default

2009-07-14  06:08    <JUNCTION>     Application Data [C:\Users\Default\AppData\Roaming]
2009-07-14  06:08    <JUNCTION>     Cookies [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Cookies]
2018-07-01  23:19    <JUNCTION>     Dane aplikacji [C:\Users\Default\AppData\Roaming]
2009-07-14  06:08    <JUNCTION>     Local Settings [C:\Users\Default\AppData\Local]
2018-07-01  23:19    <JUNCTION>     Menu Start [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu]
2018-07-01  23:19    <JUNCTION>     Moje dokumenty [C:\Users\Default\Documents]
2009-07-14  06:08    <JUNCTION>     My Documents [C:\Users\Default\Documents]
2009-07-14  06:08    <JUNCTION>     NetHood [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Network Shortcuts]
2009-07-14  06:08    <JUNCTION>     PrintHood [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Printer Shortcuts]
2009-07-14  06:08    <JUNCTION>     Recent [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Recent]
2009-07-14  06:08    <JUNCTION>     SendTo [C:\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo]
2009-07-14  06:08    <JUNCTION>     Start Menu [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu]
2018-07-01  23:19    <JUNCTION>     Szablony [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Templates]
2009-07-14  06:08    <JUNCTION>     Templates [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Templates]
2018-07-01  23:19    <JUNCTION>     Ustawienia lokalne [C:\Users\Default\AppData\Local]
               0 plik(ów)                  0 bajtów
              15 katalog(ów)  157 104 861 184 bajtów wolnych

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
Tworzenie dowiązania
ln cel nazwa_dowiązania
ln -s cel nazwa_dowiązania
Kasowanie dowiązania
rm nazwa_dowiązania
Właściwości
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 obiektuNastąpi dopiero po usunięciu ostatniego łącznika.Wszystkie istniejące łączniki wskazują nieistniejący obiekt.
Usunięcie dowiązaniaUsunięcie ostatniego dowiązania usuwa plik!Usunięcie ostatniego dowiązania nie usuwa pliku/katalogu.