Zip a tar jsou oblíbené nástroje příkazového řádku pro kompresi a archivaci více adresářů a souborů do jednoho archivního souboru v systému Linux. Ve výchozím nastavení příkaz tar nekomprimuje soubory, ale pouze shromažďuje soubory a jejich metadata za účelem generování jednoho souboru tar, ale soubory můžeme archivovat pomocí gzip/bzip2. Zatímco zip poskytuje bezeztrátovou kompresi dat, což je třída algoritmu pro kompresi dat, která umožňuje komprimovaná data rekonstruovat do původní podoby. Gzip a zip používají ke kompresi souborů algoritmus DEFLATE, zatímco bzip2 používá algoritmus Burrows-Wheeler, který vytváří vysoce komprimovaný soubor, ale spotřebuje více času než gzip a zip.
Instalace
Ve výchozím nastavení je příkaz tar integrován do systému Linux, takže začněme instalací zipu a rozbalení. Příkaz unzip se při instalaci příkazu zip nenainstaluje, takže jej musíme nainstalovat samostatně.
Než budete pokračovat v instalaci, nezapomeňte aktualizovat informace o balíčku.
$ sudo apt-get update
Instalace Zip.
$ sudo apt-get install zip
Instalace Unzip
$ sudo apt-get install unzip
Pro ukázku následujícího příkladu jsem použil Ubuntu 20.4 a v domovském adresáři má následující soubory.
Některé příklady příkazů Tar
Než budete pokračovat v příkladu, musíte znát syntaxi tar, takže syntaxe je tato:
$ tar -c [option] [archive name] [file] | [directory] |
Následující možnosti jsou hlavní a povinné možnosti, které vedou příkaz k tomu, jaký úkol má být proveden. Následující možnosti lze v příkazu použít jednou, bez nich se příkaz nespustí.
-c :Pro vygenerování archivního souboru.
-r :Přidání dalších souborů do existujícího archivního souboru.
-t :Zobrazení všech souborů v archivu.
-x: Pro rozbalení archivních souborů.
Komprimace souborů pomocí gzip a bzip2
Příkaz Tar vytváří komprimovaný soubor pomocí gzip a bzip2, ke kterému lze přistupovat zadáním voleb -z a -j příkazu. Pro archivaci a kompresi souborů tar musíme provést následující příkaz.
$ tar -cvzf compress_sample.tar.gz *.txt
Komprese souboru pomocí gzip.
$ tar -cvjf compress_sample.tar.bz2 *.txt
Komprese souboru pomocí bz2.
Ve výše uvedeném příkladu volba -c odkazuje na vytvoření archivu, volba -v zobrazuje podrobný popis archivovaných souborů a -f označuje název archivu.
Poznámka:Volba -f musí být vždy před názvem souboru.
Extrahování souborů z komprimovaného souboru
Pro extrahování komprimovaného souboru musíte spustit:
$ tar -xvf compress_sample.tar.gz
Výše uvedený příkaz rozbalí soubor v aktuálním pracovním adresáři, ale pokud chcete extrahovat soubory v jiném adresáři, můžete tak učinit pomocí příkazu -C.
$ tar -xvf compress_sample.tar.gz -C Documents/
Extrahování souborů do jiného adresáře pomocí tar.
Extrahování konkrétních souborů z komprimovaného souboru
Z komprimovaného souboru můžeme extrahovat konkrétní soubory, proto musíme zadat název souboru spolu s názvem adresáře, pokud je v adresáři.
$ tar -xvf compress_sample.tar sample.txt student.txt
Extrahování konkrétních souborů pomocí tar.
Některé příklady příkazů Zip a Unzip.
Syntaxe pro zip a unzip je následující:
$ zip [option] [archive_name] [Files]
$ unzip [option] [archive_name]
Komprimace souborů pomocí Zip
Zip je komprimátor archivů, takže pro komprimaci souborů nepotřebujeme poskytovat žádný další parametr. Pro kompresi musíme spustit příkaz takto:
$ zip zip_demo.zip *.txt
Zkomprimujte více souborů
Rozbalení souboru do jiného adresáře
Soubory zip můžeme rozbalit do různých adresářů pomocí volby -d a zadáním adresáře v příkazu.
$ unzip zip_demo.zip -d Documents/
Rozbalte soubor do jiného adresáře.
Rozbalení konkrétních souborů z komprimovaného souboru
Chcete-li rozbalit konkrétní soubor z archivu, musíte příkaz provést následujícím způsobem.
$ unzip zip_demo.zip student.txt sample.txt
Rozbalte konkrétní soubory ze souboru zip.
Závěr
V tomto článku se naučíme archivovat a komprimovat soubory pomocí příkazů tar a zip. Do článku jsem zahrnul nejběžnější příklad, doufám, že vám pomůže komprimovat soubory.