Komprese je docela užitečná při zálohování důležitých souborů a také odesílání velkých souborů přes internet. V tomto tutoriálu probereme, jak komprimovat a dekomprimovat soubory v Linuxu pomocí dvou programů příkazového řádku, jmenovitě gzip a bzip2 .
Poznámka:
Komprese již komprimovaného souboru zvyšuje režii navíc, takže získáte o něco větší soubor. Přestaňte tedy komprimovat komprimovaný soubor.
Komprimujte a dekomprimujte soubory v Linuxu
Jak již bylo řečeno, nejběžněji používané programy pro kompresi souborů v systémech Linux a Unix jsou:
- gzip
- bzip2
Nejprve uvidíme použití Gzip.
1. Komprimujte a dekomprimujte soubory pomocí programu Gzip
gzip je nástroj pro kompresi a dekomprimaci souborů pomocí kódovacího algoritmu Lempel-Ziv (LZ77).
1.1 Komprimovat soubory
Chcete-li komprimovat soubor s názvem ostechnix.txt , nahraďte jej komprimovanou verzí gzip, spusťte:
$ gzip ostechnix.txt
Gzip nahradí původní soubor ostechnix.txt s komprimovanou verzí gzip s názvem ostechnix.txt.gz .
Příkaz gzip lze použít i jinak. Jedním z dobrých příkladů je, že můžeme vytvořit komprimovanou verzi výstupu konkrétního příkazu. Podívejte se na následující příkaz.
$ ls -l Downloads/ | gzip > ostechnix.txt.gz
Výše uvedený příkaz vytvoří komprimovanou verzi seznamu adresářů složky Stažené soubory.
1.2 Komprimujte soubory a zapisujte výstup do různých souborů (nenahrazujte původní soubor)
Ve výchozím nastavení program gzip zkomprimuje daný soubor a nahradí jej komprimovanou verzí gzip. Můžete si však ponechat původní soubor a zapsat výstup na standardní výstup. Například následující příkaz komprimuje ostechnix.txt a zapíše výstup do output.txt.gz .
$ gzip -c ostechnix.txt > output.txt.gz
Podobně pro dekomprimaci souboru gzip s uvedením výstupního souboru:
$ gzip -c -d output.txt.gz > ostechnix1.txt
Výše uvedený příkaz dekomprimuje output.txt.gz a zapíše výstup do ostechnix1.txt soubor. V obou případech nedojde k odstranění původního souboru.
1.3 Dekomprimovat soubory
Chcete-li dekomprimovat soubor ostechnix.txt.gz , nahradíme ji původní nekomprimovanou verzí, uděláme:
$ gzip -d ostechnix.txt.gz
K dekomprimaci souborů můžeme také použít gunzip.
$ gunzip ostechnix.txt.gz
1.4 Zobrazení obsahu komprimovaných souborů bez jejich dekomprimace
Chcete-li zobrazit obsah komprimovaného souboru pomocí gzip bez jeho dekomprimace, použijte -c příznak, jak je znázorněno níže:
$ gunzip -c ostechnix1.txt.gz
Případně použijte zcat nástroj jako níže.
$ zcat ostechnix.txt.gz
Můžete také použít výstup příkazu "méně" a zobrazit tak výstupní stránku po stránce, jak je uvedeno níže.
$ gunzip -c ostechnix1.txt.gz | less
$ zcat ostechnix.txt.gz | less
Případně existuje zless program, který vykonává stejnou funkci jako výše uvedený kanál.
$ zless ostechnix1.txt.gz
1.5 Komprimujte soubor pomocí gzip zadáním úrovně komprese
Další významnou výhodou gzip je podpora úrovně komprese. Podporuje 3 úrovně komprese, jak je uvedeno níže.
- 1 - Nejrychlejší (nejhorší)
- 9 - Nejpomalejší (nejlepší)
- 6 - Výchozí úroveň
Chcete-li komprimovat soubor s názvem ostechnix.txt , nahraďte ji komprimovanou verzí gzip s názvem nejlepší úroveň komprese, používáme:
$ gzip -9 ostechnix.txt
1.6 Zřetězení více komprimovaných souborů
Je také možné zřetězit více komprimovaných souborů do jednoho. Jak? Podívejte se na následující příklad.
$ gzip -c ostechnix1.txt > output.txt.gz
$ gzip -c ostechnix2.txt >> output.txt.gz
Výše uvedené dva příkazy zkomprimují ostechnix1.txt a ostechnix2.txt a uloží je do jednoho souboru s názvem output.txt.gz .
Obsah obou souborů (ostechnix1.txt a ostechnix2.txt) můžete zobrazit bez jejich extrahování pomocí některého z následujících příkazů:
$ gunzip -c output.txt.gz
$ gunzip -c output.txt
$ zcat output.txt.gz
$ zcat output.txt
Další podrobnosti naleznete na manuálových stránkách.
$ man gzip
2. Komprimujte a dekomprimujte soubory pomocí programu bzip2
Soubor bzip2 je velmi podobný programu gzip, ale používá jiný kompresní algoritmus nazvaný Burrows-Wheeler blokový třídicí algoritmus komprese textu a Huffmanovo kódování. Soubory komprimované pomocí bzip2 budou končit .bz2 rozšíření.
Jak jsem řekl, použití bzip2 je téměř stejné jako gzip. Stačí nahradit gzip ve výše uvedených příkladech pomocí bzip2 , gunzip pomocí bunzip2 , zcat s bzcat a tak dále.
Chcete-li komprimovat soubor pomocí bzip2 a nahradit jej komprimovanou verzí, spusťte:
$ bzip2 ostechnix.txt
Pokud nechcete původní soubor nahradit, použijte -c flag a zapište výstup do nového souboru.
$ bzip2 -c ostechnix.txt > output.txt.bz2
Chcete-li dekomprimovat komprimovaný soubor:
$ bzip2 -d ostechnix.txt.bz2
Nebo,
$ bunzip2 ostechnix.txt.bz2
Zobrazení obsahu komprimovaného souboru bez jeho dekomprimace:
$ bunzip2 -c ostechnix.txt.bz2
Nebo,
$ bzcat ostechnix.txt.bz2
Další podrobnosti naleznete na manuálových stránkách.
$ man bzip2
Doporučené čtení:
- Pigz – komprimovat a dekomprimovat soubory paralelně v systému Linux
Shrnutí
V tomto tutoriálu jsme se naučili, co jsou programy gzip a bzip2 a jak je používat ke kompresi a dekomprimaci souborů s několika příklady v GNU/Linuxu. V dalším průvodci se naučíme, jak archivovat soubory a adresáře v Linuxu .