Windows Vista - symlink, hardlink, junction

MyEgo.cz

home foto blogy mywindows.cz kontakt

Windows Vista - symlink, hardlink, junction

Windows Vista 25.02.09

Windows Vista zavádí řadu pokročilých souborových a adresářových propojení nad NTFS, které jsou jinak běžně známé (desítky let) z NIXových systémů.

Zatímco dříve (na Windows XP a Windows 2000) se používala externí utilita junction pro propojení adresářů a symbolický odkaz na soubor byl možný jen ve formě netransparentního LNK odkazu, tak Vista se dodává s utilitou mklink, která umí vytvářet symbolické odkazy na adresáře a soubory, pevné odkazy na soubory a spojení adresářů.

Pevný odkaz neboli hardlink je vlastně více jmen pro jeden soubor; hardlink je tak nutně přímo svázán se zdrojovým souborem, pokud smažete hardlink, smaže se i zdrojový soubor, rovněž přístupová práva jsou pro všechny hardlinky identické.

Symbolický odkaz je pouze relativní ukazatel na soubor či adresář, jeho smazání nemá přitom na zdrojový soubor či adresář vliv.

Výhoda hardlinků je v jejich teoreticky mírně vyšší rychlosti, u symlinků zase můžete nazávisle nastavovat práva a atributy (například „Ke čtení“ či „Skrytý“).

Spojení adresáře (junction) je ve Windows Vista doplněno symbolickým odkazem na adresář, a doporučuji používat spíše /D parametr než /J.

Příkaz mklink má následující použití:

MKLINK [[/D] | [/H] | [/J]] Cíl Odkaz

bez paremetrů   Vytvoří symbolický odkaz na soubor.
/D    Vytvoří symbolický odkaz na adresář. 
/H    Vytvoří pevný odkaz namísto symbolického odkazu.
/J    Vytvoří spojení adresáře.
Odkaz Určuje název nového symbolického odkazu.
Cíl   Určuje cestu, na kterou nový odkaz odkazuje.

Použití v praxi:

V praxi si můžete vytvořit například takovouto adresářovou strukturu:

<SYMLINKD>     bin32 [c:\Program Files (x86)]
<SYMLINKD>     bin64 [c:\Program Files]
<DIR>          cygwin
<SYMLINKD>     doc [c:\Users\rADo\Documents]
<DIR>          hry
<SYMLINKD>     img [c:\Users\rADo\Obrázky]
<DIR>          ins
<SYMLINKD>     snd [c:\Users\rADo\Hudba]
<SYMLINKD>     tmp [c:\Users\rADo\Downloads]
<DIR>          Users
<SYMLINKD>     vid [c:\Users\rADo\Videos]
<DIR>          web
<DIR>          Windows
<SYMLINKD>     work [c:\web\www]

Což znamená mimořádně snadný přístup k souborům bez narušení struktury adresářů Windows, naopak s jejich využitím:

SpeedCommander

Úžasné na tomto konceptu je fakt, že pokud něco ukládáte například z Průzkumníka do dokumentů (c:\Users\rADo\Documents), máte pro to snadný přístup v c:\doc, a podobně.


Komentáře

  1. 1 Patrik Vogl 25.02.09, 11:02:56
    FB

    rADo, měl bych spíš problém :-) Upravil jsem si přes nějakou utilitku ikony složek typu Dokumenty a nyní mi Windows a hromada aplikací bere defaultně namíst c:/user/jmeno/dokumenty => C:\Users\Patrik\Links(205)\Documents.

    nevíš, co to může znamenat, popřípadě kde ve Windows nastavit defaultní cestu k dokumentům?

  2. 2 Radek Hulán 26.02.09, 02:02:39
    FB

    [1] ty defaultní cesty umí změnit třeba TuneUp Utilities, kde jsou v registrech ale nevím.

  3. 3 Jaroslav Šmíd 27.02.09, 12:02:06
    FB

    Jestli se nemýlím, tak smazáním hardlinku se soubor na disku nesmaže, ale stane se tak až se smazáním posledního hardlinku.
    Také je škoda, že na mklink i na systémové volání je potřeba zvednout oprávnění.

  4. 4 Jaroslav Šmíd 27.02.09, 09:02:43
    FB

    [1] Kdyz kliknes pravym na slozku s dokumentama, ktera je nastavena pro ty dokumenty (to Links(neco)), tak je na jedny zalozce volba presunout, nebo umisteni - staci to zmenit. Nebo tu slozku staci presunout ci prejmenovat a Vista si to sama zmeni. V nejhorsim pripade to pak najdes v registru, dej vyhledat nazev ty slozky (muze tam byt i %userprofile% misto C:\Users\Uzivatel, tak hledej i s tim. Melo by to byt v nejakem klici ShellFolders nebo tak neco.

  5. 5 Jaroslav Šmíd 27.02.09, 09:02:45
    FB

    [1] Tak konkretne je to v HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Shell Folders
    Radku, jestli muzes, tak ty komentare spoj, at ti to tu nedela bordel.

  6. 6 Jiří Havlena 27.02.09, 07:02:27
    FB

    Jak je vyřešeno skrytí nepotřebných adresářů - třeba "Program Files"? Přes nezobrazování skrytých souborů a adresářů nebo existuje nějaké lepší řešení?

  7. 7 Krejčí Michal 02.04.09, 11:04:32
    FB

    Neúspěšně se pokouším přemapovat Program files z Céčka na Déčko. Prosím poraďte.

  8. 8 Stealth Man 12.04.09, 08:04:06
    FB

    Chapu dobre, ze hardlink by mel vytvorit neco jako stalou kopii souboru a udrzovat obousmerne oba soubory stejny?

    Muzete se mrknout na video, kde se stala chyba? Pripadne jak toho mam docilit jinak?

    http://www.screencast.com/t/dVVzGNBp...

  9. 9 Ivo Peterka 19.02.10, 01:02:10
    FB

    Koukám, že Windows 7 konečně dohnali Unixy v oblasti odkazů ([hard|soft]links).

  10. 10 Ivo Peterka 19.02.10, 01:02:13
    FB

    [8] Funguje-li to stejně jako na Unixech, tak je to u hardlink tak, že jeden a ten samý soubor má více záznamů v souborovém systému. Čili fyzicky je to stále ten samý soubor, ale je vidět ve více adresářích (patří do více adresářů), a dokud se nezmažou všechny hardlinky, pak ten soubor stále existuje.

  11. 11 Stepan Kasl 06.12.10, 11:12:18
    FB

    [10] Hardlink je pouze odkaz na soubor, ale je s ním pevně svázán. Při smazání hardlinku (posledního se všech hardlinků, které na daný soubor byly vytvořeny) se soubor z disku nesmaže, pouze se uvolní místo na disku pro případný další zápis (soubor pak může být kdykoli přepsán, pokud je třeba na disk něco zapsat).