Jak extrahovat soubory ze souboru .tar.gz nebo .tar.bz2 v systému Linux

  • Dave McKay

    @TheGurkha

  • 5. dubna 2019, 8:00 EDT
Fatmawati Achmad Zaenuri / .com

Tar soubory jsou komprimované archivy. Setkáte se s nimi často při používání linuxové distribuce, jako je Ubuntu, nebo dokonce při používání terminálu v systému macOS. Zde je návod, jak extrahovat – nebo rozbalit – obsah souboru tar, známého také jako tarball.

Co znamenají .tar.gz a .tar.bz2?

Soubory, které mít .tar.gz nebo .tar.bz2 příponu jsou komprimované archivní soubory. Soubor pouze s .tar příponou je nekomprimovaný, ale ty budou velmi vzácné.

Část .tar přípona souboru znamená páskový archiv a je důvodem, že oba tyto typy souborů se nazývají tar soubory. Soubory tar sahají až do roku 1979, kdy byl vytvořen příkaz tar, který umožňuje správcům systému archivovat soubory na pásku. O čtyřicet let později stále používáme příkaz tar k extrahování souborů tar na naše pevné disky. Někdo někde pravděpodobně stále používá tar s páskou.

Reklama

.gz nebo Přípona .bz2 označuje, že archiv byl komprimován pomocí gzip nebo bzip2 kompresní algoritmus. Příkaz tar bude šťastně fungovat s oběma typy souborů, takže nezáleží na tom, která metoda komprese byla použita – a měl by být k dispozici všude, kde máte shell Bash. Stačí použít příslušné tar možnosti příkazového řádku.

Extrakce souborů ze souborů Tar

Řekněme, že jste stáhli dva soubory noty. Jeden soubor se jmenuje ukulele_songs.tar.gz, druhý se nazývá guitar_songs.tar.bz2. Tyto soubory jsou v adresáři Stažené soubory.

Rozbalme si skladby ukulele:

tar -xvzf ukulele_songs.tar.gz 

Při extrahování souborů jsou uvedeny v okno terminálu.

Možnosti příkazového řádku, které jsme použili, jsou:

  • -x: Extrahovat, načíst soubory ze souboru tar.
  • – v: Verbose, seznam souborů, které se extrahují.
  • -z: Gzip, pomocí gzip dekomprimujte soubor tar.
  • -f: Soubor, název tar soubor, se kterým tar pracujeme. Po této možnosti musí následovat název souboru tar.

Seznam souborů v adresáři pomocí ls a uvidíte, že byl vytvořen adresář s názvem Ukulele Songs. Extrahované soubory jsou v tomto adresáři. Odkud pochází tento adresář? Byl obsažen v tar souboru a byl extrahován spolu se soubory.

Reklama

Nyní pojďme extrahovat kytarové písničky. K tomu použijeme téměř úplně stejný příkaz jako předtím, ale s jedním důležitým rozdílem. Přípona .bz2 nám říká, že byla komprimována pomocí příkazu bzip2. Místo použití možnosti -z (gzip) použijeme možnost -j (bzip2).

tar -xvjf guitar_songs.tar.bz2

Soubory jsou znovu uvedeny na terminálu, jakmile jsou extrahovány. Aby bylo jasno, možnosti příkazového řádku, které jsme použili u tar pro soubor .tar.bz2, byly:

Pokud uvedeme seznam soubory v adresáři Download uvidíme, že byl vytvořen další adresář s názvem Guitar Songs.

Volba, kam se mají extrahovat soubory

Pokud chceme extrahovat soubory do umístění kromě aktuálního adresáře můžeme určit cílový adresář pomocí volby -C (zadaný adresář).

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Reklama

Při pohledu do adresáře Documents / Songs uvidíme, že byl vytvořen adresář Guitar Songs.

Upozorňujeme, že cílový adresář již musí existovat, tar jej nevytvoří, pokud není k dispozici. Pokud potřebujete vytvořit adresář a tar extrahovat do něj všechny soubory v jednom příkazu, můžete to udělat takto:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

Možnost -p (rodiče) způsobí, že mkdir vytvoří všechny nadřazené adresáře, které jsou požadovány, a zajistí tak cílový adresář je vytvořeno.

Nahlédnutí do souborů Tar před jejich extrakcí

Zatím jsme udělali skok víry a extrahovali soubory neviditelné. Možná byste se rádi podívali, než skočíte. Obsah souboru tar můžete zkontrolovat před jeho extrahováním pomocí možnosti -t (seznam).Obvykle je vhodné propojit výstup pomocí příkazu less.

tar -tf ukulele_songs.tar.gz | less
Reklama

Všimněte si, že k výpisu souborů nemusíme používat možnost -z. Možnost -z musíme přidat, pouze když extrahujeme soubory ze souboru .tar.gz. Stejně tak nepotřebujeme možnost -j k výpisu souborů v souboru tar.bz2.

Procházení výstup vidíme, že vše v souboru tar je uloženo v adresáři nazvaném Ukulele Songs a v tomto adresáři jsou soubory a další adresáře.

Vidíme, že adresář Songy Ukulele obsahuje adresáře zvané Náhodné skladby, Ramones a Possibles.

Chcete-li extrahovat všechny soubory z adresáře v souboru tar, použijte následující příkaz. Cesta je zabalena do uvozovek, protože v cestě jsou mezery.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
Reklama

Chcete-li extrahovat jeden soubor, uveďte cestu a název souboru.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

Výběr souborů můžete extrahovat pomocí zástupných znaků, kde * představuje libovolný řetězec znaků a ? představuje libovolný jeden znak. Použití zástupných znaků vyžaduje použití možnosti --wildcards.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

Extrahování souborů bez extrahování adresářů

Pokud si nepřejete, aby byla adresářová struktura v souboru tar znovu vytvořena na vašem pevném disku, použijte volbu --strip-components. Možnost --strip-components vyžaduje číselný parametr. Číslo představuje počet úrovní adresářů, které se mají ignorovat. Soubory z ignorovaných adresářů se stále extrahují, ale adresářová struktura se na vašem pevném disku nereplikuje.

Pokud zadáme --strip-components=1 s naším ukázkovým souborem tar, Ukulele Songs nejvyšší adresář v souboru tar není vytvořen na pevném disku. Soubory a adresáře, které by byly extrahovány do tohoto adresáře, jsou extrahovány v cílovém adresáři.

tar -xvzf ukulele_songs.tar.gz --strip-components=1
Reklama

Existují pouze dva úrovně vnoření adresáře v našem vzorovém souboru tar. Pokud tedy použijeme --strip-components=2, všechny soubory se extrahují v cílovém adresáři a nevytvoří se žádné další adresáře.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Pokud se podíváte na manuálovou stránku Linuxu, uvidíte, že tar musí být dobrým kandidátem na titul příkazu, který má nejvíce možností příkazového řádku. Naštěstí, abychom mohli extrahovat soubory ze souborů .tar.gz a tar.bz2 s dobrou mírou granulární kontroly, musíme si pamatovat jen hrstku z těchto možností.

Dave McKay
Dave McKay poprvé používal počítače, když byla v módě děrovaná papírová páska, a od té doby programuje . Po více než 30 letech v IT průmyslu je nyní technologickým novinářem na plný úvazek. Během své kariéry pracoval jako nezávislý programátor, manažer mezinárodního týmu pro vývoj softwaru, projektový manažer IT služeb a naposledy , jako inspektor ochrany údajů. Dave je evangelista Linuxu a zastánce otevřeného zdroje. Číst celé bio „

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *