Fájlok kibontása .tar.gz vagy .tar.bz2 fájlból Linux alatt

A tar fájlok tömörített archívumok. Gyakran találkozhat velük egy Linux disztribúció, például az Ubuntu, vagy akár a terminál használata közben a macOS-on. A tar fájl, más néven tarball fájl tartalmának kibontása vagy eltávolítása.

Mit jelent a .tar.gz és a .tar.bz2?

Fájlokat tartalmaz, amelyek .tar.gzvagy egy .tar.bz2kiterjesztésű tömörített archív fájlokat. A csak .tarkiterjesztésű fájl tömörítetlen, de ezek nagyon ritkák lesznek.

A .tarfájlkiterjesztés része a t ape ar chive rövidítése, és ez az oka annak, hogy mindkét fájltípust tar fájlnak nevezik. A Tar fájlok egészen 1979-ig nyúlnak vissza, amikor tarlétrehozták a parancsot, hogy a rendszergazdák archiválhassák a fájlokat szalagra. Negyven évvel később még mindig használjuk a tarparancsot a tar fájlok kibontására a merevlemezre. Valaki valahol valószínűleg még mindig tarszalaggal használja.

.gzvagy .bz2hosszabbító toldalék azt jelzi, hogy az archívum már tömörített, akár a gzipvagy bzip2tömörítési algoritmust. A tarparancs mindkét fájltípussal boldogan fog működni, így nem mindegy, hogy melyik tömörítési módszert használták - és mindenhol elérhetőnek kell lennie, ahol Bash héja van. Csak a megfelelő tar parancssori opciókat kell használnia .

Fájlok kibontása a Tar fájlokból

Tegyük fel, hogy két kottat töltött le. Az egyik fájl neve ukulele_songs.tar.gz, a másik neve guitar_songs.tar.bz2. Ezek a fájlok a Letöltések könyvtárban találhatók.

Bontsuk ki az ukulele dalokat:

tar -xvzf ukulele_songs.tar.gz 

A fájlok kibontásakor a terminál ablakában szerepelnek.

A használt parancssori lehetőségek a következők:

  • -x : Kivonat, lekérjük a fájlokat a tar fájlból.
  • -v : Verbose, sorolja fel a fájlokat a kibontás során.
  • -z : Gzip, használja a gzip-t a tar fájl kibontásához.
  • -f : Fájl, a tar fájl neve, taramellyel dolgozni akarunk . Ezt az opciót követnie kell a tar fájl nevének.

Sorolja fel a könyvtárban található fájlokat a következővel, lsés látni fogja, hogy létrejött egy könyvtár Ukulele Songs néven. A kibontott fájlok abban a könyvtárban találhatók. Honnan jött ez a könyvtár? A tarfájl tartalmazta, és kivonták a fájlokkal együtt.

Most vonjuk ki a gitárdalokat. Ehhez majdnem pontosan ugyanazt a parancsot fogjuk használni, mint korábban, de egy fontos különbséggel. A .bz2kiterjesztés utótagja elmondja, hogy a bzip2 paranccsal tömörítették. A -z(gzip) opció helyett a -j(bzip2) opciót fogjuk használni .

tar -xvjf gitár_dalok.tar.bz2

A fájlok a kibontáskor ismét megjelennek a terminálon. Az egyértelműség tarérdekében a .tar.bz2fájlhoz használt parancssori opciók a következők voltak:

  • -x : Kivonat, lekérjük a fájlokat a tar fájlból.
  • -v : Verbose, sorolja fel a fájlokat a kibontás során.
  • -j : Bzip2, a bzip2 segítségével dekompresszáljuk a tar fájlt.
  • -f : Fájl, annak a tar fájlnak a neve, amellyel a tar-t akarjuk használni.

Ha felsoroljuk a fájlokat a Download könyvtárba, akkor látni fogjuk, hogy létrejött egy másik Guitar Songs nevű könyvtár.

A fájlok kibontásának kiválasztása

Ha a fájlokat az aktuális könyvtártól eltérő helyre akarjuk kicsomagolni, akkor a -C(megadott könyvtár) opcióval megadhatunk egy célkönyvtárat .

tar -xvjf guitar_songs.tar.gz -C ~ / Dokumentumok / Dalok /

A Dokumentumok / Dalok könyvtárban megnézve a Guitar Songs könyvtárat létrehozták.

Ne feledje, hogy a célkönyvtárnak már léteznie kell, tarés ha nincs , akkor nem fogja létrehozni. Ha létre kell hoznia egy könyvtárat, és egy tarfájlban kell kibontania a fájlokat, akkor ezt a következőképpen teheti meg:

mkdir -p ~ / Dokumentumok / Dalok / Letöltött && tar -xvjf guitar_songs.tar.gz -C ~ / Dokumentumok / Dalok / Letöltött /

A -p (szülők) opció mkdirlétrehozza a szükséges szülőkönyvtárakat, biztosítva a célkönyvtár létrehozását.

A kátrányfájlok belsejébe nézés, mielőtt kinyerjük őket

Eddig csak ugrottunk a hitbe, és kivontuk a fájlokat, amelyek láthatatlanok voltak. Érdemes megnéznie, mielőtt ugrik. A (lista) opcióval áttekintheti a tarfájl tartalmát, mielőtt kibontaná -t. Általában kényelmes a kimenetet a lessparancs segítségével csövezni.

tar -tf ukulele_songs.tar.gz | Kevésbé

Ne feledje, hogy -za fájlok felsorolásához nem kell használnunk az opciót. Csak meg kell adni a -zlehetőséget, amikor mi kitermelése fájlokat a .tar.gzfájl. Hasonlóképpen, nincs szükségünk arra a -jlehetőségre, hogy felsoroljuk a fájlokat egy tar.bz2fájlban.

Végiggörgetve a kimenetet láthatjuk, hogy a tar fájlban minden megtalálható az Ukulele Songs nevű könyvtárban, és ezen a könyvtáron belül vannak fájlok és más könyvtárak.

Láthatjuk, hogy az Ukulele Songs könyvtár Random Songs, Ramones és Possibles nevű könyvtárakat tartalmaz.

Az összes fájl kibontásához egy tar fájlban található könyvtárból használja a következő parancsot. Ne feledje, hogy az útvonal idézőjelekbe van csomagolva, mert vannak helyek az útvonalban.

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

Egyetlen fájl kibontásához adja meg a fájl elérési útját és nevét.

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

Kiválaszthat egy fájlkiválasztást helyettesítő karakterekkel, amelyek *bármely karakterláncot képviselnek, és bármelyik karaktert ?képviselik. Helyettesítő karakterek használata megköveteli az --wildcardsopció használatát.

tar -xvz - vadkártyák -f ukulele_songs.tar.gz "Ukulele dalok / lehetőségek / B *"

Fájlok kibontása könyvtárak kibontása nélkül

Ha nem szeretné, hogy a tar fájl könyvtárstruktúrája újból létrejöjjön a merevlemezen, használja az --strip-componentsopciót. Az --strip-componentsopcióhoz numerikus paraméter szükséges. A szám azt jelzi, hogy hány könyvtárat kell figyelmen kívül hagyni. A figyelmen kívül hagyott könyvtárakból származó fájlokat továbbra is kibontják, de a könyvtárstruktúra nem replikálódik a merevlemezen.

Ha --strip-components=1a tar fájl példájával adjuk meg , akkor a tar fájlban az Ukulele Songs legfelső könyvtárat nem hozzuk létre a merevlemezen. Az adott könyvtárba kibontott fájlokat és könyvtárakat a célkönyvtárba vonják ki.

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

A példa kátrányfájlunkban csak két szintű könyvtár fészkelés található. Tehát, ha használjuk --strip-components=2, akkor az összes fájl kibontásra kerül a célkönyvtárban, és más könyvtárak nem jönnek létre.

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

Ha megnézi a Linux man oldalát, akkor azt látja, hogy tarjó jelöltnek kell lennie a „legtöbb parancssori opcióval rendelkező parancs” címre. Szerencsére ahhoz, hogy fájlokat .tar.gzés tar.bz2fájlokat tudjunk kivonni jó részletgazdagságú vezérlésből, csupán néhány ilyen lehetőségre kell emlékeznünk.