Pri pohľade na užívateľské rozhranie Mac OS X sa už nedá spoznať, že je postavený na zákonitostiach Unixu. Napriek tomu sa dajú využiť všetky jeho výhody, bez ohľadu na to, či to mal Apple v pláne alebo nie. Trochu pozabudnuté tiež zostali aj Unixové odkazy – Hardlinky a Softlinky. Tie umožňujú viac, než klasické Aliasy tvorené Finderom, hlavne programátorom môžu ušetriť trochu práce. Ale ich potenciál sa dá využiť aj v bežnej praxi.Čo sú a odkiaľ pochádzajú?
Na začiatok by možno bolo dobré objasniť si, čo vlastne Hardlinky a Softlinky znamenajú, pretože v manuáloch od Maca to nenájdete. Možno viete, že Apple sa na konci minulého milénia pokúšal vytvoriť nový systém, ktorý by nahradil starnúci Mac OS 8 a neskôr OS 9. Keďže vývoj nepokračoval dosť rýchlo, Apple odkúpil NeXTSTEP a skrížil ho s jeho vtedajším systémom. Z NeXTSTEP-u nám dodnes zostalo jadro a niektoré časti nesúce veľa technológií z Unixu. V Unixe existujú hneď dva typy odkazov a to práve spomínané Hardlinky a Softlinky. No z OS 9 pretrváva Finder so svojimi Aliasmi, ktoré vytlačili unixové odkazy do úzadia, čo však neznamená, že boli odstránené.
Ak sa pozrieme na Aliasy, zistíme, že každá aplikácia ich berie len ako obyčajný súbor. Nevidia v nich odkaz, a tak s ním ani tak nenarábajú. V prípade, že by aplikácia požadovala dáta zo súboru a my by sme jej podhodili len Alias naň, došlo by k problému. Súbor by nebol dostupný a požadované dáta by sa teda nenašli. Spôsobené je to nepodporovaním Aliasov priamo systémom samotným. Adresu, na ktorú sa má prejsť, dokáže prečítať len Finder. (Ak máme byť presný, tak to dokáže aj iná aplikácia, musí však byť na to napísaná, čo sa takmer nikdy nerobí.) Unixové linky sú ale plne podporované priamo v systéme. Aplikácia, ktorej podstrčíme link na požadovaný súbor, spoľahlivo dôjde k svojim dátam. To sa dá využiť rôznimi spôsobmi. A nie len to, linky nám môžu zjednodušiť aj synchronizáciu, urýchliť programy a mnoho iného.
Hardlink zblízka
Hardlink nie je odkaz príliš podobný Aliasom, pretože v tomto prípade nebude možné nájsť rozdiel medzi odkazom a pôvodným súborom. Hardlink vytvorí pre súbor nové meno. Ak si dáme Hardlink a originálny súbor vedľa seba a jeden z nich vymažeme, nebude záležať na tom, ktorý z nich sme vymazali. Súbor bude pretrvávať, pokiaľ bude mať aspoň jedno meno. Napriek tomu, že sa javia ako obyčajné kópie, v skutočnosti bude 400 kb súbor aj po vytvorení 30 mien zaberať na disku stále len 400 kb. Okrem toho Hardlinky majú pred kópiou ešte jednu výhodu. Ak uložíte zmenu, prejaví sa v každom mene, pretože napriek všetkému sú to stále len odkazy.
Môžme takto veľmi jednoducho zdieľať súbory medzi užívateľmi, aj keď by normálne nemali oprávnenia daný súbor vidieť. Jednoducho vytvoríme Hardlink súboru do priečinku druhého užívateľa. Spoločne tak budú môcť pracovať na jednom projekte, bez toho, aby si vzájomne videli ostatné súbory. Odpadá problém so synchronizáciou a taktiež ušetríte miesto na disku, ktoré by inak zaberali kópie súborov.
To je všetko pekné, ale ako ich vytvoriť, keď Finder to nevie? Budeme musieť použiť Terminál. Aj v prípade, že ste Terminál ešte nikdy nepoužili, je vaša šanca na vytvorenie Hardlinku stále veľká. Terminál je niečo ako príkazový riadok z Windows, len sa riadi trochu inými pravidlami. Nájdete ho v priečinku Aplications/Utilities. Po spustení napíšte do Terminálu „ln“, čo je skratka Linku. Potom nad okno Terminálu potiahnite súbor, ktorý chcete opatriť ďaľším menom. Následne nad Terminál potiahnite ešte priečinok, kam sa má vytvoriť a za to všetko ešte dopíšte meno, aké bude Hardlink mať a stlačte Enter. Príklad:
Hardlink sa líši od originálu iba umiestnením.
Hardlinky majú aj svoje tienisté stránky. Prvou je nemožnosť vytvoriť Hardlink na inom disku a zdieľať tak napríklad súbor medzi viacerými počítačmi. Druhou nevýhodou je, že Hardlinkmi možno tvoriť odkazy iba na súbory a nie na priečinky. Softlink však týmito neduhmi netrpí!
Softlink zblízka
Softlink sa trochu podobá na Alias, tiež je to len súbor s adresou, na ktorú odkazuje. Má však ešte k tomu niekoľko výhod. Rovnako ako Hardlink, aj Softlink je podporovaný každou aplikáciou aj systémom. Od Aliasu sa líši aj tým, že adresa v ňom môže byť absolútna aj relatívna. V bežnom Aliase je celá cesta deklarovaná absolútne, čo znamená, že obsahuje celú cestu k súboru od hlavného disku až po posledný podpriečinok, zatiaľ čo v Softlinku sa deklaruje len úsek adresy ktorý my chceme. Takže môže obsahovať celú cestu alebo len /Priečinok/Súbor. V praxi si to môžeme túto nespornú výhodu ukázať na veľmi jednoduchom príklade. Predstavte si priečinok, v ktorom to vyzerá asi nasledovne:
Máme tam Alias a Softlink, odkazujúci na rovnaký súbor. Alias používa absolútnu adresu a Soflink má napísaný len /Obrazok.jpg. Po vypálení celého priečinku, napríklad na CD, bude Alias nefunkčný, zatiaľ čo Softlink bude naďalej odkazovať na obrázok. V praxi to asi často nevyužije každý, ale občas to príde vhod. Tvorba Softlinkov je opäť možná len cez Terminál. Od tvorby Hardlinkov sa líši len tým, že za „ln“ dopíšeme ešte atribút „-s“. Príklad:
Praktické nasadenie sa ukrýva aj inde. Ako už bolo povedané, pomocou neho môžme odkazovať aj na priečinky a súbory na inom disku. Existuje mnoho spôsobov ako to využiť. Môžete napríklad preložiť aplikáciu na rýchlejší externý disk, či USB kľúč, a zároveň mať odkaz aj v zložke ~/Applications. Dosiahnete tak vyššiu rýchlosť behu a ak budete následne zálohovať tento priečinok na CD, vypáli sa aj súbor skrývajúci sa za odkazom. Rovnako môžete presunúť cache internetového prehliadača na USB kľúč, čím sa zásadne zrýchli načítanie navštívených webstránok. Skrátka využitiu sa medze nekladú. Ale nenechajte sa zmiasť Hardlinkom, po vymazaní súboru, na ktorý Softlink odkazuje, o dáta definitívne prídeme. Nejedná sa o rovnocenné mená a situácia pripomína Aliasy. Dokonca aj Finder vám jasne neznačí, že sa jedná o odkaz, šípkou v ľavom dolnom rohu.
komentárov
zaujimavy clanok, opat sa sklanam nad vysokou urovnou macblogu… len tak dalej
Este by som mozno doplnil, ze softlinky sa pouzivaju vo velkej miere na systemovych knizniciach … vid. Terminl a prikaz: ls -la /usr/lib
Mal by som jednu otázku, lebo neviem, či správne chápem hardlinky: Ak by som mal povedzme 1GB video súbor na mieste Z a na mieste X mu spravím hardlink, budú zaberať stále len 1GB. Čo sa ale stane, ak vymažem pôvodný originálny súbor? Budú sa presúvať všetky dáta z toho pôvodného 1GB súboru na nové miesto hardlinku, a hardlink sa stane pôvodným súborom? Vďaka.
pitero: pokial tomu ja rozumiem (a to pred citanim tohoto clanku som o tom nemal potuchy, cize len dedukcia), tak existuje nejaky 1GB subor, ktory ma X nazvov, ktore mozes mat kdekolvek. cize vymazanim ktorehokolvek mazes len dotycny nazov, nie subor. az ked zmazes uplne posledny nazov, tak mazes aj subor. v skratke, zjednodusene…
Nazor uzivatela „Belodrak alias Magneto“ na server MacBlog.sk bol presunuty do „temy na fore“:http://forum.www.macblog.sk/discussion/177/belodrakov-nazor-na-kvalitu-macblogsk/, kde sa moze dalej diskutovat. Venujte sa prosim teme clanku, offtopic presunieme.
pitero: MBPro sa trafil do čierneho. Hardlink tvori nové mená, s ktorých každé odkazuje na pôvodný súbor. Ak vymažeš meno na pôvodnom mieste a zostane iné meno inde, súbor zostane na disku. Počet mien je napísaný priamo v právach súboru. Z nich sa dozvieš, koľko mien ešte súboru zostáva , kým je aspoň jedno, súbor sa nevymaže.
aha, cize softlink je symbolicky odkaz. no, neviem, naco je potrebne vymyslat nove nazvy na davno existujuce veci:
-s, –symbolic
make symbolic links instead of hard links
dusoft: Symbolicky odkaz „symbolic link“ sa tiez nazyva „symlink“ alebo aj „soft link“. „Wikipedia“:http://en.wikipedia.org/wiki/Symbolic_link. Pre tento clanok je asi pre prehladnost lepsie hovorit tomu hard link a soft link.
ked sa vytvori pre nejaky subor hardlink, tak sa uz neda povedat ktory je hardlink a ktory povodny subor. preto to co vidime vo finderi pre vsetky subory (ktore nemaju ziadne soft, hard ani aliasy) su tiez len hardlinky. a aj vymazanim posledneho hardlinku (cize akoze suboru samotneho) sa este subor nevymaze. zmaze sa len posledny hardlink na neho, ale subor z disku zmizne az ked sa na to miesto, kde bol na disku, zapise nieco nove. preto existuje aj mazanie, pri ktorom sa miesto kde je subor ulozeny niekolko krat prepise samymi jednickami a nasledne samymi nulami. Specialisti totiz dokazu z diskov zistit aj po niekolko nasobnom vymazani a prepisani, co bolo na disku zapisane predtym. :)
pre MBPro, Maroša a „ja“: Ďakujem, už je mi to jasné. Skúsim to využiť v praxi.