Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux

Příkaz tar v systému Linux se často používá k vytváření archivních souborů .tar.gz nebo .tgz, nazývaných také „tarballs“. Tento příkaz má velké množství možností, ale abyste si rychle vytvořili archivy pomocí tar, musíte si zapamatovat několik písmen. Příkaz tar může také extrahovat výsledné archivy.

Příkaz GNU tar, který je součástí distribucí Linuxu, má integrovanou kompresi. Může vytvořit archiv .tar a poté jej komprimovat pomocí komprese gzip nebo bzip2 v jediném příkazu. Proto je výsledným souborem soubor .tar.gz nebo .tar.bz2.

Komprimujte celý adresář nebo jeden soubor

Pomocí následujícího příkazu zkomprimujete celý adresář nebo jeden soubor v systému Linux. Komprimuje také všechny ostatní adresáře v adresáři, který určíte - jinými slovy funguje rekurzivně.

tar -czvf název-archivu.tar.gz / cesta / do / adresáře nebo souboru

Co tyto přepínače ve skutečnosti znamenají:

  • -c: C reate archiv.
  • -z: Zkomprimujte archiv pomocí g z ip.
  • -v: Zobrazí průběh v terminálu při vytváření archivu, také známém jako režim „ v erbose“. V je v těchto příkazech vždy volitelné, ale je užitečné.
  • -f: Umožňuje určit f ilename archivu.

Řekněme, že máte v aktuálním adresáři adresář s názvem „stuff“ a chcete jej uložit do souboru s názvem archive.tar.gz. Spustili byste následující příkaz:

tar -czvf archive.tar.gz věci

Nebo řekněme, že v aktuálním systému je adresář na / usr / local / something a chcete jej zkomprimovat do souboru s názvem archive.tar.gz. Spustili byste následující příkaz:

tar -czvf archive.tar.gz / usr / local / něco

Komprimujte více adresářů nebo souborů najednou

SOUVISEJÍCÍ: Jak spravovat soubory z terminálu Linux: 11 příkazů, které potřebujete vědět

Zatímco tar se často používá ke kompresi jednoho adresáře, můžete jej také použít ke kompresi více adresářů, více jednotlivých souborů nebo obou. Jednoduše zadejte seznam souborů nebo adresářů místo jednoho. Řekněme například, že chcete komprimovat adresář / home / ubuntu / Downloads, adresář / usr / local / stuff a soubor /home/ubuntu/Documents/notes.txt. Právě byste spustili následující příkaz:

tar -czvf archive.tar.gz / home / ubuntu / Soubory ke stažení / usr / local / stuff /home/ubuntu/Documents/notes.txt

Stačí vypsat tolik adresářů nebo souborů, kolik chcete zálohovat.

Vyloučit adresáře a soubory

V některých případech můžete zkomprimovat celý adresář, ale nezahrnout určité soubory a adresáře. Můžete tak učinit připojením --excludepřepínače pro každý adresář nebo soubor, který chcete vyloučit.

Řekněme například, že chcete komprimovat / home / ubuntu, ale nechcete komprimovat adresáře / home / ubuntu / Downloads a /home/ubuntu/.cache. Takto to uděláte:

tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Downloads --exclude = / home / ubuntu / .cache

--excludeSwitch je velmi silný. Nebere názvy adresářů a souborů - ve skutečnosti přijímá vzory. Můžete s tím udělat mnohem víc. Například můžete archivovat celý adresář a vyloučit všechny soubory .mp4 pomocí následujícího příkazu:

tar -czvf archive.tar.gz / home / ubuntu --exclude = *. mp4

Místo toho použijte kompresi bzip2

Zatímco komprese gzip se nejčastěji používá k vytváření souborů .tar.gz nebo .tgz, tar podporuje také kompresi bzip2. To vám umožní vytvářet soubory komprimované pomocí bzip2, často pojmenované .tar.bz2, .tar.bz nebo .tbz. Chcete-li tak učinit, stačí v příkazech zde nahradit -z pro gzip za -j pro bzip2.

Gzip je rychlejší, ale obecně se komprimuje o něco méně, takže získáte o něco větší soubor. Bzip2 je pomalejší, ale komprimuje se o něco více, takže získáte poněkud menší soubor. Gzip je také běžnější, s některými ořezanými systémy Linux, včetně podpory gzip ve výchozím nastavení, ale ne s podporou bzip2. Obecně platí, že gzip a bzip2 jsou prakticky to samé a oba budou fungovat podobně.

Například namísto prvního příkladu, který jsme poskytli pro kompresi adresáře stuff, spustíte následující příkaz:

tar -cjvf archive.tar.bz2 věci

Extrahujte archiv

Jakmile máte archiv, můžete jej extrahovat pomocí příkazu tar. Následující příkaz rozbalí obsah archive.tar.gz do aktuálního adresáře.

tar -xzvf archive.tar.gz

Je to stejné jako příkaz pro vytvoření archivu, který jsme použili výše, kromě toho, že -xpřepínač nahradí -cpřepínač. Určuje, že chcete e x traktu archivu namísto vytvořit.

Možná budete chtít extrahovat obsah archivu do konkrétního adresáře. Můžete tak učinit připojením -Cpřepínače na konec příkazu. Například následující příkaz extrahuje obsah souboru archive.tar.gz do adresáře / tmp.

tar -xzvf archive.tar.gz -C / tmp

Pokud se jedná o soubor komprimovaný bzip2, nahraďte „z“ ve výše uvedených příkazech „j“.

Toto je nejjednodušší možné použití příkazu tar. Příkaz obsahuje velké množství dalších možností, takže je zde nemůžeme vypsat všechny. Pro více informací. spuštěním příkazu info tar na shellu zobrazíte stránku s podrobnými informacemi příkazu tar. Až budete hotovi, stiskněte klávesu q pro opuštění informační stránky. Manuál tar si můžete také přečíst online.

Pokud používáte grafickou plochu systému Linux, můžete k vytvoření nebo extrakci souborů .tar použít také nástroj pro kompresi souborů nebo správce souborů, který je součástí vaší plochy. Ve Windows můžete extrahovat a vytvářet archivy .tar pomocí bezplatného nástroje 7-Zip.