Štěpán Roh
Verze 0.3
Revize dokumentu 1.1 (15.1.2005)
Srzip je určen spíše k zábavě než k práci. Představuje poměrně věrnou kopii
kompresních utilit gzip a bzip2, pouze s poněkud horšími kompresními
algoritmy.
Srzip bere jednotlivé soubory, které má uvedené na příkazové řádce (nebo
standardní vstup) a nahrazuje je komprimovanou verzí (není-li řečeno jinak).
Původní soubory smaže. Je-li spuštěn se jménem srunzip, tak provádí
dekompresi (v případě srzipu je nutno použít přepínač -d). Je-li spuštěn
jako srzcat, tak všechny soubory dekomprimuje na standardní výstup a ponechá
je beze změny.
Komprimované soubory mohou být složeny z vícero částí, slepených bez mezery
k sobě.
Není-li povoleno brát si jméno původního souboru z hlavičky komprimovaného
souboru, tak je konstruováno následujícím způsobem: nejdříve se zkusí
odtrhnout přípona (implicitně .srz nebo ta uvedená přepínačem -S) nebo
jednopísmennná koncovka 'z' a výsledné jméno se zkrátí v případě, že systém
nepodporuje dlouhá jména.
Formát spuštění je:
srzip [jména souborů a přepínačů v libovolném pořadí]
-a --ascii konverze konců řádek
-c --stdout zápis na standardní výstup (aktivuje --keep)
-d --decompress dekomprese
-f --force přepisovat výstupní soubory bez ptaní
-h --help nápověda
-k --keep ponechávat původní soubory nedotčeny
-l --list výpis informací o komprimovaných souborech
-L --license "licenční" informace
-n --noname neukládat ani neobnovovat původní jméno ani čas souboru
-N --name ukládat a obnovovat původní jméno a čas souboru
-q --quiet potlačí veškerá varování
-S .suf --suffix .suf používat příponu .suf při kompresi
-t --test test integrity komprimovaného souboru
-v --verbose více informací o probíhajících dějích
-V --version číslo verze
-z --compress komprese
-1 --fast .. -9 --best úroveň komprese
-m m --method m kompresní metoda (0 = cpy, 1 = rle, 2 = shc, 3 = ahc, 4 = bwt)
Přepínače mohou být jak v krátkém formátu (začínají na '-'), tak v dlouhém
GNU formátu (začínají na '+') a i v dlouhém POSIX formátu (začínají na
'--'). Všechny tyto formáty jsou plně podporovány.
A nyní přepínače podrobně:
- -a --ascii
- Konvertují se konce řádek při kompresi i dekompresi. Nutné použít u obou, poněvadž při dekompresi se předpokládají Unixové konce řádek.
- -c --stdout
- Místo aby se vytvářely nějaké soubory, tak veškerý výstup směřuje na standardní výstup. Původní soubory zůstanou nezměněny a veškerý normální výstup je potlačen. Při pokusu o výpis komprimovaného souboru na terminál je další práce odmítnuta, pakliže není použit přepínač -f.
- -d --decompress
- Dekomprese. Implicitní mód, jmenuje-li se program srunzip (např. pomocí symbolického linku). Použije-li se i přepínač -v, tak zároveň vypisuje informaci o tom, co dekomprimuje.
- -f --force
- Výstupní soubory se přepíší bez ptaní. Taktéž je ignorován případný fakt, že komprimovaný soubor směřuje na konzoli.
- -h --help
- Nápověda.
- -k --keep
- Původní soubory budou ponechány nedotčeny.
- -l --list
- Pro každý zkomprimovaný soubor se vypíše původní i nová délka v bytech, kompresní poměr i jméno souboru, jak by vypadalo po dekompresi. Při užití přepínače -v se ještě navíc vypíše jméno kompresní metody, kontrolní součet a čas souboru.
- -L --license
- "Licenční" informace.
- -n --noname
- Při kompresi se neukládá jméno ani čas souboru. Při dekompresi se ignoruje jméno i čas uložené v archívu. Implicitně se ignoruje při dekompresi.
- -N --name
- Při kompresi se ukládá jméno i čas souboru. Při dekompresi se použije jméno i čas uložené v archívu. Implicitně se ukládá při kompresi.
- -q --quiet
- Potlačí se veškeré varovné hlášky.
- -S .suf --suffix .suf
- Místo standardní přípony '.srz' se bude užívat daná přípona.
- -t --test
- Test integrity archívu pomocí zkusmé dekomprese v paměti.
- -v --verbose
- Podává se více informací o probíhajících dějích.
- -V --version
- Verze programu.
- -z --compress
- Komprese. Implicitní mód, jmenuje-li se program srzip. Použije-li se i přepínač -v, tak zároveň vypisuje informaci o tom, co se komprimuje.
- -1 --fast .. -9 --best
- Úroveň komprese. Vyšší číslo = vyšší kvalita, nižší číslo = vyšší rychlost.
- -m m --method m
- Kompresní metoda. Implicitně je to ta s nejvyšším číslem. Při dekompresi se zjišťuje automaticky. Dostupné metody jsou:
- 0 = cpy
- prostá kopie
- 1 = rle
- run-length encoding (proudové kódování; nejhorší, ale nejrychlejší)
- 2 = shc
- statické huffmanovo kódování
- 3 = ahc
- adaptivní huffmanovo kódování
- 4 = bwt
- Burrows-Wheelerova transformace (ve skutečnosti BWT+MTF+AHC; nejlepší, velice pomalá komprese, lepší než gzip)
Změny z verze 0.2 (22.2.2000) na verzi 0.3 (3.5.2000)
- přidána kompresní metoda bwt
Změny z verze 0.1 (28.2.1999) na verzi 0.2 (22.2.2000)
- vylepšen proces konfigurace
- zprovoznění komprimace ze standardního vstupu u DJGPP
- přidána možnost negovat parametr pomocí předpony 'no-' a nejenom 'no'
- vypisuje jména souborů ještě před zahájením komprese při --verbose
- správně vypisuje jméno souboru jaké bude po dekompresi při --list
- při přerušení signálem smaže nedokončený výstupní soubor
- přepsaná metoda rle (a funkční)
- oprava chyb (endiány aj.)
- testované systémy: Linux s glibc2, IRIX 6.4 a SunOS 5.5.1
- s DJGPP nebyly provedeny žádné testy! (pouze srzip 0.1)
- Urychlení komprese u metody bwt.
- Komprimované tabulky četností u metody shc.
- Nezávislost na délce slova (co se týče kompilace programu i kompatibility archivů).
- Stavebnicový systém - možnost řetězení jednotlivých metod, čitelnější kód.
Štěpán Roh <src@post.cz>
This document was generated using AFT v5.095