GZip v1.2.4x2 (ENIF)

Prohlížíte-li si nějaké cédéčko Aminet, nebo brouzdáte-li Iternetem, určitě narazíte na archivy s koncovkou ".z" nebo ".gz". Právě tyto jsou výsledkem činnosti pakovače GZip.

GZip v1.2.4x2
Verze GZipu který tu budu popisovat je už celkem dost stará, ale zatím mě ještě nezklamal (je z 9. dubna, 1994). Abych pravdu řekl, tak mi GZip ležel celkem dost dlouho na hadru, než jsem pro něj našel uplatnění (znáte to -lha, lzx a spol.). Ale poslední dobou, co se stále víc zajímám o LINUX, ho prostě občas potřebuju.
Nechám už úvodů a něco vám o něm povím...
Popis:
Gzip redukuje velikost souborů pomocí Lempel-Zivova kódování (LZ77). Pokud mu to umožníte, nahradí původní soubor pakovaným s příponou ".gz" (přednastavená přípona je - ".gz" pro VMS, ".z" pro MSDOS, OS/2 FAT, Windows NT FAT a Atari). Nespecifikujete-li žádný soubor, nebo je-li jako název souboru zadáno "-", bude se komprimovat standardní vstup do standard ního výstupu. Gzip je schopmý zkomprimovat pouze opravdové soubory. To znamená, že GZip ignoruje symbolické linky na soubory.
Je-li jméno kompresovaného souboru příliž dlouhé pro daný souborový systém, GZip ho zkrátí. Gzip dovoluje zkrátit pouze ty části jména souboru, které jsou delší než tři znaky (jednotlivé části jsou ohraničeny tečkami). Skládá-li se jméno pouze z malých částí, pak se zkrátí nejdelší části. Například, jsou-li názvy souborů limitovány na 14 znaků, gzip.msdos.exe bude zkomprimován jako gzi.msd.exe.gz. Jména se nekrátí na systémech které nemají nijak limitovánu délku jmen souborů.
Podle svého přednastavení, GZip ukládá originální jméno souboru a čas do zkompresovaného souboru, čehož se využívá, když rozbalujete soubor s parametrem -N. Toto je užitečné, bylo-li jméno zkompresovaného souboru zkráceno nebo když uložený čas nebyl zachován při přenosu archivu.
Pakované soubory mohou být obnoveny do jejich originální podoby použitím "gzip -d" nebo "gunzip" nebo "zcat". Není-li originální jméno uložené v archivu použitelné pro daný file systém, je zkonstruováno nové z původního jména tak, aby bylo "OKee Dokee".
Archivy vytvořené zipem mohou být rozbaleny GZipem pouze obsahují-li pouze jeden soubor kompresovaný metodou 'deflation'. Pro rozpakování zipů s několika soubory používejte unzip místo gunzip.
Gzip využívá Lempel-Zivova algoritmu používaného i v zipu a PKZIPu. Účinnost komprese závisí na velikosti vstupních souborů a množství vložených řetězců (jména souborů, ...). Typicky, texty (jako jsou zdrojáky) bývají zredukovány na 60-70% své délky. Komprese je všeobecně mnohem lepší než LZW (používá ji např. compress), Huffmanovo kódování (používá ho pack), nebo adaptivní Huffmanovo kódování (compact).
Tolik tedy citát z originální dokumentace k GZipu (lehce zkráceno :-)). Následuje popis používání GZipu (taktéž pokrácený).
Formát:

     gzip [ -acdfhlLnNrtvV19 ] [-S přípona] [ jméno ... ]    
   
Vybrané parametry:

     -d --decompress --uncompress
          Rozbalení.

     -c --stdout --to-stdout
          Zapíše vstup na standardní výstup. Nechá původní soubor
          bezezměny. Zadáte-li několik vstupních souborů, pak výstup
          bude obsahovat sekvenci nezávisle zkomprimovaných souborů.
          Pro dosažení lepší komprese spojte všechny vstupní soubory
          před jejich balením dohromady (např. Tarem).
 
     -h --help
          Zobrazí nápovědu a skončí.

     -l --list
          Zobrazení obsahu archivu.
          Pro každý zkompresovaný soubor vypíše:

              velikost po spakování
              původní velikost
              kompresní poměr (0.0% je-li neznámý)
              jméno nezkompresovaného souboru (původní j.)
          
          Zadáte-li i parametr -v, je GZip ještě ukecanější...
            
     -N --name
          Při kompresi vždycky uloží originální jméno souboru a čas.
          Toto je přednastavená volba a není ji tedy nutné zadávat.

     -r --recursive
          Probere všechny adresáře i podadresáře a spakuje všechno
          dohromady (nebo rozbalí).

     -q --quiet
          Maká bez varování... :-)
          Nelekejte se - pouze nic nebude vypisovat...

     -t --test
          Otestuje, je-li archiv v pořádku.

     -v --verbose
          Během své pracovní doby bude obzvlášť ukecanej.

     -V --version
          Zobrazí svou verzi a skončí.


     Co mám tedy, proboha, napsat?

Při rozbalování:

     gzip >dočehorozbalit -dc corozbalit.gz   (nebo .z, ...)

nebo při balení:

     gzip >dočehozabalit.gz -c cozabalit


Když si přečtete originální dokumentaci k GZipu, zjistíte, že toho umí je ště mnohem víc (jen musíte umět anglicky... ;-)).

GZip má lepší kompresi než Lha a většinou přemůže i Lzx. Tak se mi zdá, že už vím do čeho že to budu příště balit...