Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Unixová komprese v praxi: Tar

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.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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.

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 :-).

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: Django framework: Struktura a základy vývoje (nejen) webových aplikací

Django je vyspělý webový framework napsaný v jazyce Python, který podporuje extrémně rychlý vývoj společně s dodržováním principů dobrého návrhu. Snaží se co nejvíce automatizovat a drží se principu DRY (z anglického Don't Repeat Yourself — neopakuj se).

  • Instalace potřebného softwaru
  • Programování v Pythonu: příkazy, funkce, datové typy, moduly, objekty, výjimky
  • Struktura aplikace v Djangu
  • Typické záležitosti webových aplikací: Napojení na databázi, zpracování vstupu od uživatele, přihlášení či generování dynamického obsahu.
  • Implementace principu MVC: modely, pohledy (views) a šablony
  • Seznámení s užitečnými komponenty frameworku Django
  • Šikovné praktiky

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,02

Přehled názorů

styly optionů
Yeti 7. 4. 2003 00:41
Nový
├ 
Re: styly optionů
Petr Krčmář 7. 4. 2003 09:03
Nový
│
└ 
Re: styly optionů
Yeti 7. 4. 2003 10:37
Nový
│
 
└ 
Re: styly optionů
Petr Krčmář 7. 4. 2003 10:52
Nový
│
 
 
└ 
Re: styly optionů
Yeti 7. 4. 2003 11:45
Nový
│
 
 
 
└ 
Re: styly optionů
Petr Krčmář 7. 4. 2003 12:11
Nový
├ 
Re: styly optionů
Medon 9. 4. 2003 21:07
Nový
└ 
Re: styly optionů
Zootv 28. 4. 2010 10:52
Nový
ACL
Milan 7. 4. 2003 01:11
Nový
├ 
Re: ACL
Honza 7. 4. 2003 02:12
Nový
├ 
Re: ACL
Jirka Pech 7. 4. 2003 03:27
Nový
│
└ 
Re: ACL
Ivan 7. 4. 2003 12:28
Nový
│
 
├ 
Re: ACL tar, to jsou jen same problemy....
Marek 7. 4. 2003 21:36
Nový
│
 
│
└ 
Re: ACL tar, to jsou jen same problemy....
ghkjo 29. 11. 2007 14:25
Nový
│
 
└ 
Re: ACL
Pavel Čejka 8. 4. 2003 01:10
Nový
│
 
 
└ 
Re: ACL
Troton 8. 4. 2003 19:50
Nový
└ 
Re: ACL
Yenya 7. 4. 2003 10:16
Nový
cpio
Medon 9. 4. 2003 21:09
Nový
solid archiv
AnalProbe 11. 4. 2003 09:44
Nový
└ 
Re: solid archiv
Medon 11. 4. 2003 21:05
Nový
multivolume archiv
Noxius 5. 5. 2003 11:20
Nový
TAR
Radek 12. 2. 2004 18:45
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem