ADE: Tar 1.11.8, Gzip 1.2.4Jan Skýpala
Standardním archiverem na Amize je Lha, pozornosti se těší i Lzx. Chcete-li si
však přenést nějaké soubory jinam (např. na nějaký Unix), může se vám snadno
stát, že tam Lha nebude. Na všechny platformy (včetně Amigy) jsou ale
naportovány programy Tar a Gzip, které jsou na dnešních Unixech standardem.
Pojďme se v rámci pokračování seriálu o programech z ADE distribuce podívat
právě na tyto dva. Tar
Základním archiverem na Unixu je ar. Tato utilitka je však už zastaralá a
používá se pouze pro balení objektů do linkovaných knihoven (to je ovšem samo o
sobě velmi zajímavý nápad). Jako běžný archivační program se prosadil jeho
nástupce tar.
První zajímavostí na taru je, že pracuje sekvenčně. Běžné Amigácké archivery se
v souborech pohybují tam a zase zpět, tar daný bajt po přečtení už nikdy nebude
potřebovat. Tato vlastnost se může zdát zanedbatelná, většinu uživatelů
nenapadne žádná výhoda tohoto přístupu. Jedna velká výhoda však existuje:
vzhledem k tomu, že tar umí číst nejen soubory, ale i různá zařízení (včetně
standardního vstupu), lze ho napojit před nebo za nějaký program do roury. Tak
lze například již při balení zajistit, aby na disk byly ukládány soubory o
velikostí dostupného místa na disketě výstup taru se přes PIPE pošle prográmku
split.
Další velice užitečnou vlastnosti taru je rozpoznání symbolických linků. Link je
zástupce za jiný soubor na disku - pro uživatele to vypadá, jako kdyby daný
soubor byl na disku dvakrát (nebo ještě vícekrát), ale on je tam jenom jednou.
To může být někdy velice vhodné např. 2 různé programy mohou hledat týž soubor v
různých adresářích. Jiné typické použití je vytvoření si linků se jmény většiny
textových prohlížečů (more, ppmore, less) ukazující na váš oblíbený prohlížeč
(most). Když je pak tento soubor změněn, projeví se to samozřejmě ve všech jeho
„kopiích“. Symbolický link je řešen tak, že v souboru je uloženo, jaký soubor se
má místo tohoto souboru použít. Link samozřejmě nemusí být jen soubor, ale i
adresář.
Když Tar narazí na symbolický link, do archivu běžně neuloží obsah souboru, na
který link ukazuje (to lze ovšem zapnout), ale obsah linku - tedy právě jméno
souboru, na který má link ukazovat. V případě, že linky používáte (a šetříte si
tak místo na disku), archivy mohou být znatelně kratší.
Tar sám o sobě neumí žádnou kompresi - výsledný archiv je tak dlouhý, jak jsou
vstupující soubory plus několik informací o jménech souborů apod. Archiv se
běžně komprimuje posléze a to nejčastěji Gzipem (archiv pak má příponu .tar.gz,
případně .tgz), případně compressem (.tar.Z, .taz) či zipem (tar.zip).
Dokumentace k turu je pochopitelně v angličtině a někteří se v ní možná
nevyznáte a mohli byste mít s tarem zpočátku problémy já jsem měl), proto
následuje popis toho nejdůležitějšího:
Syntaxe je: tar parametry [archiv] [soubory]
parametry:
c - vytvořit archiv
a - přidat do archivu
x - rozbalit archiv
t - vypsat obsah archivu
z - archiv je komprimovaný (tar zajistí spuštění Gzipu)
f - za parametry následuje jméno souboru-archivu (jinak bude použit standardní
vstup/výstup!!!)
v - vypisovat, co se děje (jinak tar pracuje „tiše“)
příklady: sbalení: tar zcvf archiv.tar.gz
rozbalení tar zxvf archiv.tar.gz Gzip
Gzip je v současnosti standardem pro kompresi souborů na Unixu. Kromě něj
určitě na každém Unixu najdete základní komprimační program compress (přidává
příponu .z). Gzip slouží pro sbalení nebo rozbalení jednoho souboru. Komprese je
založena na Lempel-Ziv algoritmu (LZ77). Při běžném použití je při kompresi
původní soubor nahrazen sbaleným souborem, který bude mít příponu .gz a naopak,
při rozbalení je soubor s příponou .gz nahrazen rozbaleným souborem. Gzip umí
také rozbalit soubory sbalené programy compress, zip a pack.
Gzip umí stejně jako Tar pracovat se standardním vstupem a výstupem, takže je
možné ho přes rouru zapojit jako filtr. GNU Tar umí volat gzip sám (parametr
-z), běžné fary to však neumí, právě u nich se pak využívalo rour při archivaci
a dearchivaci:
far cv * | gzip >archiv.tar.gz
gzip -d <archiv.tar.gz | tar xv
Chcete-li, aby Gzip vždy použil některé parametry, je možné je uložit do
systémové proměnné ENV. Takovým vhodným parametrem může být -N, který při
dekompresí zajistí, že nový soubor bude mít svůj původní název, tj. takový, jak
se soubor jmenoval při kompresi. Porovnání
Určitě mnoho lidi bude zajímat porovnání Taru s Gzipem vůči Lha a Lzx.
Provedl jsem test, při kterém jsem sbalil do archivu svou instalaci GoldEDu -
824 souborů o délce 4483061 bajtů. Test proběhl na A1200 s 68030/50MHz a 16MB
Fast RAM. Výsledky jsou uvedeny v tabulce. Lha
Lha je způsob archivace, při němž jsem nejdříve soubory sbalil do Lha
archivu s vypnutou kompresí (parametr -z) a potom celý archiv nechal znovu
přebalit Lhačkem, tentokrát s kompresí zapnutou. Z tabulky je vidět, že Tar s
Gzipem jsou v každém případě nejpomalejší (přece jen to jsou obecně napsané
programy a není v nich nic optimalizovaného pro AmigaOS), archiv sbalený pomocí
Lha je delší, avšak pomocí Lzx je kratší než při použití Taru s Gzipem.
Nastavení nejvyšší možné komprese pro Gzip přineslo minimální úspory při téměř
dvojnásobném čase potřebném pro kompresi. Závěr
Tar s Gzipem jsou vzhledem ke své rychlosti a velikostí výsledných archivů
vhodné především tehdy, když chcete nějaký svůj archiv přenést na Unix, případně
naopak. Symbolické linky se na Amize až tak příliš nepoužívají a normální
amigácký Shell roury nepodporuje. Třeba bude situace jiná na nástupci Amigy, ale
to se teprve uvidí.
Oba dva programy jsou k nalezení na URL:
fpt.grolier.rf/pub/amiga/current/amiga-bin/
|
Délka archivu |
Čas archivace |
Čas dearchivace |
Lha |
2197095 |
2 min 27 s |
58 s |
Lha.Lha |
2058189 |
2 min 55 s |
1 min 21 s |
Lzx |
1845091 |
2 min |
1 min 2 s |
Lzx -3 |
1837789 |
2 min 13 s |
1 min 2 s |
Tar.Gzip |
1974583 |
3 min 8 s |
1 min 39 s |
Tar.Gzip -9 |
1963980 |
5 min 40 s |
1 min 40 s |
Tar, Gzip |
Hodnocení: 8,0 z 10 |
Autor: FSF |
Cena: - |
Typ: freeware |
+ |
přenositelnost archivu |
- |
symbolické linky, sekvenční
zpracování, rychlost |
Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|