Unixová komprese v praxi: Tar

Petr Krčmář 7. 4. 2003

Po delší pauze, kterou zapříčinila angína, se dostáváme k další části našeho seriálu o unixové kompresi, kterou věnujeme programu tar.

Pravdou je, že tar vlastně taky ještě nekomprimuje (někteří z vás už si možná říkají: „Tož kurnik je to o kompresi, nebo ne ?“), ale protože s použitím „těch opravdových“ kompresních programů dost souvisí, nemůžu jinak, než se o něm taky zmínit.

Tar s největší pravděpodobností najdete ve všech distribucích, na které si vzpomenete. Patří k základnímu unixovskému software, který nesmí chybět.

Název tar je zkratka slov tape archiver. Přesný překlad by zněl nějak jako „páskový zálohovač“ (angličtina je někdy pekelná). Tar vznikl z potřeby jednoduše zapisovat data na pásku (streamer). Protože pásková jednotka je zařízení, které může dávat data pouze proudově (tak, jak jdou na pásce za sebou), nelze na ní vytvořít klasický souborový systém a přistupovat k ní jako k disketě (motor by se utočil a stejně by to moc nefungovalo). Nejjednodušší způsob, jak na pásku zálohovat soubor, je prosté

cat muj_soubor_co_chci_zalohovat > /dev/tape

kde /dev/tape je pochopitelně link na páskovou jednotku. Stejně tak zpětně můžeme tento soubor z pásky dostat na disk (dá se to provádět i s disketou, můžete si to zkusit, ale přijdete o data na ní). To je sice všechno pěkné, ale co když potřebujeme archivovat více než jeden soubor (což je ostatně skoro pořád)? A právě k tomu vznikl tar.

Tar umí sloučit několik souborů, včetně adresářové struktury, práv a dalších nezbytných informací, do jednoho velkého. Ten je velký stejně jako jednotlivá data v něm, plus nějaká ta režie (samotné názvy souborů taky něco zaberou), která je ovšem naprosto zanedbatelná. Samotné „zatarování“, jak se procesu vytvoření archivu u nás říká, provedeme jednoduše:

tar -cf archiv.tar /nejaka_cesta/*

Tím nám v aktuálním adresáři vznikne soubor archiv.tar. Parametry se dají zapamatovat poměrně jednoduše: c znamená create (vytvoř) a f znamená file (název souboru). „Roztarování“ se dělá velmi podobně:

tar -xf archiv.tar

a na disku máme rozbalené naše soubory.

No jo, ale jak to souvisí s tou kompresí? Úplně jasně a velmi úzce. Jednou ze základních filosofických pouček Unixu je: „Programy dělají jenom jednu věc, ale zato pořádně.“, a proto si unixové kompresní programy rozdělily úkoly. Tar jenom spojuje soubory do jednoho balíku, ale komprese ho nezajímá, a ostatní (gzip, bzip2, compress a další) zase jenom komprimují soubory a o nějaké spojování souborů se nestarají, to je pod jejich úroveň. Jejich úkolem je jenom komprimovat proud dat na vstupu a hotový produkt dávat na svůj výstup. To, že jsou v proudu nějaké soubory, je vlastně vůbec nezajímá.

Unix obsahuje jednu užitečnou věc, a tou jsou roury. Pro ty, kteří nevědí, o co se jedná: Jedná se o jednoduchý způsob, jak výstupní data z jednoho programu rovnou předávat dalšímu, jeho výstupní pak třeba dalšímu a tak dál a nakonec je třeba uložíme do souboru. Jako obecný příklad použití taru s nějakým kompresním programem si můžeme uvést třeba tohle:

tar -c cesta_k_datum | nejaky_kompresni_program
 > komprimovany_soubor

Jaký kompresní program můžeme použít, to si řekneme v dalších dílech seriálu, kde si i jednotlivé programy popíšeme a trochu otestujeme. Je dobrým zvykem dávat komprimovaným souborům příponu podle programu, kterými jsme je vytvořili, a to tak, že přípony jakoby postupně přidáváme za sebe. Malý příklad: Soubor s tímto článkem se jmenuje komprese2.txt a já ho pošlu do redakce komprimovaný gzipem. Pak se bude jmenovat komprese2.txt.gzip. Kdybych vytvářel tarem archiv, který bych pak ještě zkomprimoval gzipem, jmenoval by se archiv.tar.gzip, někdy se také zkráceně píše archiv.tgz. Často se takovému souboru říká „tarball“. Každý, kdo takový soubor vidí, pak už podle názvu pozná, jak a čím je soubor komprimován a co má dělat pro to, aby jej dekomprimoval.

Protože už tar a jeho kolegové „kompresoři“ existují nějaký ten pátek, autoři taru do něj zakomponovali i podporu pro nejpoužívanější kompresní programy. Proto stačí například mezi parametry -cf vložit ještě parametr z a vytvářený archiv se rovnou zkomprimuje gzipem. Totéž platí při dekompresi. Jde vlastně jenom o pohodlí a zmenšení počtu znaků na příkazové řádce. Jestli použijete tar -czf, nebo spojíte jednotlivé programy do roury, je úplně jedno. Záleží spíš na tom, co vám vyhovuje.

widgety

Tar umí ještě spoustu věcí, o kterých jsem se nezmínil. Kompletní seznam parametrů najdete jako vždy na manuálové stránce a spoustu informací můžete objevit taky na webu.

V příštím díle už se budeme opravdu věnovat prvnímu kompresnímu programu (Slibuju :-).

Našli jste v článku chybu?
Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Vitalia.cz: Výživový poradce: Tyhle fešáky jedu celoročně

Výživový poradce: Tyhle fešáky jedu celoročně

DigiZone.cz: RRTV: frekvence pro Country Radio

RRTV: frekvence pro Country Radio

Podnikatel.cz: I vám můžou vykrást značku. Braňte se

I vám můžou vykrást značku. Braňte se

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Root.cz: Podívejte se na shořelé Samsung Note 7

Podívejte se na shořelé Samsung Note 7

Lupa.cz: Odkazy na pirátský obsah mohou být nelegální

Odkazy na pirátský obsah mohou být nelegální

DigiZone.cz: Sat novinky: NASA Ultra HD (4K)

Sat novinky: NASA Ultra HD (4K)

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina