Naučte se pracovat se symbolickými a pevnými odkazy
Windows Vista a samozřejmě i Windows 7 obsahují podporu tzv. symbolických odkazů, pevných odkazů a spojení adresářů. Ukážeme si, že mohou být velmi užitečné a čeho můžete díky nim dosáhnout.
Pokud jste dříve přišli do styku s některým z unixových operačních systémů, možná tušíte, že na úrovni souborového systému lze vytvářet tzv. symbolické odkazy (symbolic links, symlinks) a pevné odkazy (hard links). Obdobně je tomu i ve Windows. Principy fungování symbolických i pevných linků se mezi těmito dvěma světy téměř neliší. Ve světě Windows se navíc můžete setkat s pojmem spojení adresáře (junction).
Vy, kteří slyšíte tyto pojmy poprvé nezoufejte, vše si vysvětlíme a ukážeme několik příkladů, které si můžete sami vyzkoušet. Předpokladem pro práci s odkazy je Windows Vista a novější, který je prvním systémem Microsoftu s jejich podporou. V tomto ohledu tedy Windows oproti unixovému světu lehce zaspala.
Zástupce
Začněme zlehka u struktury, kterou všichni důvěrně známe již dlouhá léta – zástupce. Připomeňme si jeho charakteristické znaky a čeho lze jeho použitím dosáhnout. Zástupce je soubor s příponou .LNK odkazující na jiný soubor nebo složku na libovolné diskové či síťové jednotce. Prakticky všechny položky nabídky Start jsou právě zástupci. Stejně tak pravděpodobně i vaše pracovní plocha obsahuje několik z nich. Poznáte je podle typického symbolu šipky v levé spodním rohu vyobrazení ikony. Obsahem souboru samotného zástupce je informace o umístění souboru či složky, na kterou odkazuje. Stejně tak nese i informaci o své ikoně a velikosti okna v jakém se má odkazovaný soubor nebo složka otevřít – normální, maximalizované okno atd. Smazání zástupce nemá žádný vliv na cílovou odkazovanou strukturu (soubor či složku), přičemž na strukturu může odkazovat bez problémů i více zástupců zároveň. Odkaz i cílová struktura se mohou nacházet na libovolných diskových oddílech či dokonce na síti.
Symbolický odkaz
Symbolický odkaz je principem svého fungování podobný klasickému zástupci. Odkazuje na soubor či složku a je stejně jako zástupce je reprezentován souborem. Tentokrát s tím rozdílem, že do jeho obsahu nelze zasahovat. Měli byste také myslet na to, že diskový oddíl na němž je samotný symbolický odkaz uložen musí být typu NTFS. Pro odkazovaný cílový soubor čí složku toto omezení neplatí. Sliboval jsem příklady, takže pojďme směle na ně.
Pro vytvoření tohoto odkazu slouží příkaz mklink, který se poprvé objevil ve Windows Vista. Pro jeho spuštění budete potřebovat administrátorské oprávnění, proto spusťte příkazový řádek cmd.exe v Režimu správce.
První ukázka zachycuje vytvoření symbolického odkazu s názvem n.exe v existující složce C:\Linky, který odkazuje na spustitelný .EXE soubor Poznámkového bloku z Windows. Do příkazového řádku v Režimu správce zadejte mklink C:\Linky\n.exe C:\Windows\system32\notepad.exe. Ve výpisu příkazu dir C:\Linky\ poznáme podle označení <SYMLINK>, že n.exe je ve skutečnosti odkaz. Navíc je reprezentován souborem, takže jeho odstranění provedete prostým smazáním del C:\Linky\n.exe.
Kompletní sled výše popsaných příkazů zachycuje obrázek níže.

Doplněním přepínače tentokrát příkazem mklink /D C:\Linky\fav C:\Users\Jirka\Favorites vytvoříme symbolický odkaz na složku s oblíbenými položkami uživatele Jirka . Příkazy cd C:\Linky\fav a dir si ověřte, že se opravdu vypíší všechny oblíbené webové stránky.

Poznávacím znamením symbolického linku na složku je označení typu <SYMLINKD> ve výpisu příkazu dir C:\Linky\. Ke smazání odkazu na ukázkovou složku použijte příkaz rd C:\Linky\fav. Výpis si můžete prohlédnout níže.

Pevný odkaz
Zatímco symbolický link slouží pouze jako ukazovátko na soubor či složku, pevný odkaz (hard link) lze vytvořit pouze mezi dvěma soubory. Vazba mezi nimi je o poznání důkladnější. Vytvoříme-li pevný odkaz C:\Pevnylink.doc na existující dokument C:\Návody\Odkazy.doc, vznikne vlastně druhá cesta k témuž souboru. Přičemž obě budou odkazovat na stejný soubor, který je na pevném disku fyzicky uložen pouze jednou a zabírá tedy místo na disku pouze jednou. Ať už tedy upravíte text dokumentu C:\Návody\Odkazy.doc či v jeho pevném odkazu C:\pevnylink.doc, budou vždy viditelné z obou umístění. Tuto vazbu vytvoříte příkazem mklink /H C:\Pevnylink.doc C:\Návody\Odkazy.doc.

Zásadní rozdíl oproti symbolickým odkazům spočívá v tom, že v pevné odkazy je možné vytvářet pouze v rámci téhož diskového NTFS oddílu. Liší se i postup při odstraňování souboru a jeho pevného linku. Ve skutečnosti totiž při smazání původního dokumentu C:\Návody\Odkazy.doc zůstává obsah souboru fyzicky stále uložen na pevném disku, protože na něj stále ukazuje pevný odkaz C:\Pevnylink.doc. Dokud neprovedeme smazání pevného linku, bude obsah souboru přes pevný odkaz i nadále přístupný.
Smazání pevného odkazu proveďte příkazem del C:\Pevnylink.doc.
A jak to všechno využít v praxi? Nelíbilo by se vám například přistupovat k hosts souboru přímo přes C:\hosts? Pomůže vám příkaz ve tvaru mklink /H C:\hosts C:\windows\system32\drivers\etc\hosts.

Veškeré operace mazání souborů a odkazů můžete samozřejmě provádět i z grafického rozhraní Průzkumníka.
Spojení adresářů
Zajímavější uplatnění můžete najít pro techniku Spojení adresářů (Junction). Opět jde o dvě cesty ke složce, která je fyzicky na pevném disku uložena jednou. Jde tak trochu o obdobu symbolického linku.
Praktické použití může být následující. Na externím pevném disku v umístění K:\Data\Audio\ máte hudbu, kterou byste rádi viděli jako složku C:\Hudba. Příkazem mklink /J C:\Hudba K:\Data\Audio docílíte přesně tohoto požadavku.

Otevřením složky Hudba na disku C: se rázem transparentně dostáváte přímo na externí disk. Podobně si můžete zpřístupnit například složku pracovní plochy nebo jakoukoliv jinou.
Spojení adresářů můžete zrušit například nástrojem Junction Link Magic.




Srpen 16th, 2010 at 09:12
Zdravím
k čemu se v PRAXI dají použít symbolické a pevné odkazy?
Nějaké využitelné příklady…
Dík
Srpen 25th, 2010 at 10:31
Dobrý den,
pár příkladů jsem zmínil v textu. Je ale pravda, že zpravidla nejde o každodenně využívané techniky. Na druhou stranu se například s použitím Junction (spojení adresářů) můžete setkat hned několikrát ve Windows 7. Jejich výpis provedete příkazem „dir /aL /s“.
Květen 27th, 2011 at 09:19
dobry den, pekny clanek, nicmene by mne zajimalo, zda je mozne ve win7 udelat jeden odkaz, ktery bude spojovat vice adresaru.. rekneme ze mam adresare „filmy“ na discich D:, E:, F:, a chtel bych mit v umisteni C:\Filmy obsahy vsech zminenych adresaru, vite, jak to myslim, ze pokud bych pridal/odebral cokoliv z jakehokoliv umisteni v ramci zminenych adresaru (D:\Filmy; E:\Filmy; F:\Filmy), tak zmeny by se projevily taktez v adresari C:\Filmy, ktery by sam o sobe ale neexistoval… nevedel byste prosim nahodou jak by toto (pokud to je mozne)slo zaridit? predem dekuji, a clanek se mi opravdu libil.. ;)
Květen 29th, 2011 at 11:18
Michal: Tak to nejde… Zcela logicky – NTFS nepodporuje dva soubory se stejným jménem…
Srpen 23rd, 2011 at 21:07
Prosím o radu: mám W7 tablet (w500) s malým SSD diskem (32GB). Po nainstalování dostupných aktualizací mi zbývá cca 10GB, to tam ještě nemám např. office. Šlo by pomocí výše popsaných řešení (spojení adresářů?) přesunout např. Program Files na paměťovou kartu, kterou bych nechával nastálo vloženou v přístroji?
Srpen 30th, 2011 at 22:00
Dobrý den, vyzkoušel jsem si všechny druhy propojení zde popsané. Právě tohle jsem na webu hledal, když jsem chtěl napodobit „linky“ z win7 a udělat si vlastní. ALE chování vytvořených Junction je přeci jen jiné, než těch originálních. Když v mém oblíbeném Total Commanderu jdu originálním linkem např. z user\uzivatel\“poslední“, ocitnu se někde hluboko v adresářích v „Recent“ a jdu-li o adresář výš, jdu tou reálnou strukturou adresářů jak je na disku. Tak bych to chtěl i u vytvořených linků. Ale ty se chovají tak, že se sice objeví obsah cílové složky (např. Recent), jenže cesta je stále nastavená na název použitého linku a o adresář výš jsem hned zase v „uzivatel“. Nedostanu se do opravdové cílové složky. Můžete mi prosím někdo vysvětlit, jak to je možné?