dikamilo.net

Kolejny blog w sieci...

Dowiązanie symboliczne w Windows 7

Nie wiele osób o tym wie, ale podobnie jak system Linux, Windows wspiera dowiązania symboliczne do plików oraz katalogów. Od czasów wprowadzenia systemu plików NTFS mamy taką możliwość. O ile w Windowsie XP było to troszkę kłopotliwe z racji tego że należało doinstalować pakiet Resource Kit o tyle w Windows Vista jak i Windows 7 mamy już wbudowane narzędzie do tworzenia dowiązań symbolicznych.

Ale o co chodzi ?

Zapewne nie raz zdarzyło nam się tworzyć tak zwane "skróty" do programów czy folderów (główne na pulpicie) aby mieć do nich łatwiejszy dostęp i nie szukać ich po całym systemie czy przekopywać się przez drzewko katalogów na dysku. Ikonka skróty zazwyczaj opatrzona jest małą strzałką w lewym dolnym rogu a czasami zawiera prefiks "Skrót do" (opcjonalnie obie te własności można wyłączyć). Jeśli chodzi o dowiązanie symboliczne to z punktu widzenia użytkownika nie różni się ono zbytnio od skrótu, ale z punktu systemu plików różnice są znaczące. Po pierwsze aby stworzyć dowiązanie symboliczne musimy zrobić to z linii poleceń a po drugie, dowiązanie symboliczne traktowane jest przez system jako zwyczajny plik czy katalog co niesie za sobą kilka plusów. Można to traktować jako wskaźnik na zasób znajdujący się w innym miejscu.

Składnia polecenia do tworzenia dowiązania symbolicznego jest następująca:

mklink [flagi] [nazwa_dowiązania] [ścieżka_do_zasobu]

Aby polecenie odniosło jakiekolwiek skutki musi być uruchomione z prawami Administratora, w przeciwnym wypadku utworzenie dowiązania nie będzie możliwe.

Jeśli chodzi o flagi to podaje się zazwyczaj tylko /D w przypadku gdy tworzymy dowiązanie do katalogu. Pozostałe dwie opcje, nazwa_dowiązania oraz ścieżka_do_zasobu są wymagane i mogą być nazwami zasobów jak i pełnymi ścieżkami do nich.

Odwołując się do dowiązania symbolicznego tak naprawdę odwołujemy się do zasobów na które one wskazują, usuwając dowiązanie nie usuwamy zasobu na które ono wskazuje.

Należy pamiętać o tym że dowiązania symbolicznego nie można skopiować do innego miejsca niż te w którym zostało ono stworzone. W takim wypadku system poinformuje nam że dowiązanie wskazuje na zasób niedostępny. Ciekawostką jest to że dowiązania możemy tworzyć do zasobów które nie istnieją albo znajdują się np. na dysku sieciowym lub innym nośniku który nie zawsze jest dostępny.

Zastosowania

Jak już wspomniałem wcześniej dowiązanie symboliczne traktowane jest przez system plików jak zwykły plik czy katalog. Dzięki takiej właściwości jesteśmy wstanie stworzyć większą elastyczność w systemie plików.

Istnieje wiele programów które albo nie pozwalają nam zmienić domyślnej ścieżki instalacji, albo wymuszają na nas trzymanie "ważnych" danych w postaci ustawień czy chociażby profilów użytkownika czy innych plików w lokalizacjach nie zawsze nam sprzyjających i zazwyczaj na dysku C.

Przykład ? Platforma Steam. Klient steam może nie jest przesadnie duży ale wymusza na nas trzymanie wszystkich pobranych gier w katalogu samego klienta (steamapps). Rozwiązanie jest o tyle nie wygodne że ten katalog może być naprawdę duży, a nie zawsze starczy nam miejsca na dysku C. Problem można obejść tworząc dowiązanie symboliczne w tym miejscu. Katalog steamapps przenosimy sobie np. na dysk D i zmieniamy jego nazwę np. na Steam Games. Następnie tworzymy dowiązanie symboliczne:

mklink /D "C:\Program Files (x86)\Steam\steamapps" "D:\Steam Games"

Od teraz wszystkie pobrane gry mamy na dysku D a klient steam działa tak jak działał, rozwiązane proste i praktyczne.

Inny przykład to Dropbox. Usługa o tyle ciekawa że pozwala nam na synchronizacje danych między urządzeniami. Klient dropboxa przy instalacji tworzy katalog w którym będzie synchronizował pliki (oczywiście lokalizację możemy sobie dowolnie określić). Kopiowanie wszystkich plików które chcieli byśmy synchronizować do tego katalogu wydaje się mało praktyczne tym bardziej że zazwyczaj są one rozproszone po całym dysku a tworząc ich kopie marnujemy zwyczajnie miejsce. Z drugiej strony trzymanie wszystkich plików w tym katalogu może powodować nieład. Rozwiązanie ? Zamiast kopiować katalog czy plik zróbmy do niego dowiązanie symboliczne które znajdzie się w folderze synchronizowanym. Rozwiązanie o tyle praktyczne że można pokusić się o synchronizację np. profilu jakiej aplikacji która zaszyta jest gdzieś głęboko na dysku a której nie możemy w żadne sposób przenieść w inne miejsce.

To tylko dwa przykłady ale od razu widać jaką wygodę zyskujemy używając dowiązań symbolicznych. Osobiście uważam że jest to narzędzie warte zainteresowania tym bardziej że jest darmowe i dostępne od ręki bez instalowania dodatkowych programów.

Tagi