- Dave McKay
@TheGurkha
- 2019. április 5., 8:00 EDT
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) tartalmának kibontása – vagy untar-eltávolítása – így történik.
Mit jelent a .tar.gz és .tar.bz2?
.tar.gz
vagy .tar.bz2
kiterjesztéssel vannak tömörítve archív fájlok. A csak .tar
kiterjesztésű fájl tömörítetlen, de ezek nagyon ritkák lesznek.
A .tar
része a fájlkiterjesztés a szalagos archívumot jelenti, és ezért mindkét fájltípust tar fájlnak nevezik. A tar fájlok egészen 1979-ig nyúlnak vissza, amikor a tar
parancsot létrehozták, hogy a rendszergazdák archiválhassák a fájlokat szalagra. Negyven évvel később még mindig a tar
parancsot használjuk a tar fájlok kibontására a merevlemezre. Valaki valahol valószínűleg még mindig használja a tar
szalagot.
A .gz
ill. A .bz2
kiterjesztés utótagja azt jelzi, hogy az archívum tömörítésre került, a gzip
vagy a bzip2
tömörítési algoritmus. A tar
parancs 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 ki kell használnia a megfelelő tar
parancssori opciókat.
Fájlok kivonása a Tar fájlokból
Tegyük fel, hogy két fájlt töltött le kotta. 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 vannak.
Csomagoljuk ki az ukulele dalokat:
tar -xvzf ukulele_songs.tar.gz
A fájlok kibontásakor a a terminál ablak.
Az általunk használt parancssori beállítások 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-et a tar fájl kibontásához.
- -f: File, a tar név fájl, amellyel a
tar
fájlt akarjuk használni. Ezt az opciót követnie kell a tar fájl nevének.
Sorolja fel a fájlokat a könyvtárban a ls
paranccsal, és látni fogja, hogy Ukulele Songs néven létrehozták a könyvtárat. A kibontott fájlok abban a könyvtárban találhatók. Honnan jött ez a könyvtár? A tar
fájlban volt, és a fájlokkal együtt kivonták.
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 .bz2
kiterjesztés utótagja azt mondja, hogy a bzip2 paranccsal tömörítették. A -z
(gzip) opció helyett a -j
(bzip2) opciót fogjuk használni.
tar -xvjf guitar_songs.tar.bz2
A fájlok a kibontáskor ismét megjelennek a terminálon. Az egyértelműség érdekében a tar
paranccsal a .tar.bz2
fájlhoz használt parancssori beállítások a következők voltak:
Ha felsoroljuk a Download könyvtárban található fájlokat 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 egy helyre kívánjuk kibontani a jelenlegi könyvtár kivételével megadhatunk egy célkönyvtárat a -C
(megadott könyvtár) opcióval.
tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
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
nem fogja létrehozni, ha nincs jelen. Ha létre kell hoznia egy könyvtárat, és tar
fájlokat kell kibontania az összesbe egy parancsban, akkor ezt a következőképpen teheti meg:
mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/
A -p
(szülők) opció miatt a mkdir
létrehozza a szükséges szülőkönyvtárakat, biztosítva a célkönyvtárat létrejött.
Megtekintés a kátrányfájlok belsejében, mielőtt kibontanám őket
Eddig csak ugrottunk a hitbe, és a fájlokat láthatatlanul kinyertük. Érdemes megnéznie, mielőtt ugrik. A tar
fájl tartalmát a kibontás előtt ellenőrizheti a -t
(lista) opcióval.Általában kényelmes a kimenetet a less
paranccsal továbbítani.
tar -tf ukulele_songs.tar.gz | less
Vegye figyelembe, hogy a fájlok felsorolásához nem kell használni a -z
opciót. Csak akkor kell hozzáadnunk a -z
opciót, ha fájlokat vonunk ki egy .tar.gz
fájlból. Hasonlóképpen nincs szükségünk a -j
opcióra a fájlok felsorolásához egy tar.bz2
fájlban.
Görgetés 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 tartalmaz könyvtárakat, Véletlen dalok, Ramones és Lehetségesek.
Az összes fájl kibontásához egy tar fájlban lévő 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ájlt helyettesítő karakterek használatával, ahol *
bármely karakterláncot, a ?
pedig egyetlen karaktert képvisel. Helyettesítő karakterek használatához a --wildcards
opció használata szükséges.
tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/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 a --strip-components
beállítást. A --strip-components
opció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 a --strip-components=1
-t megadjuk a tar fájl példájával, a A tar fájlban az Ukulele Songs legfelső könyvtárát nem hozzák 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
Csak kettő van a könyvtárfészkelés szintjei a példa tar fájlunkban. Tehát, ha a --strip-components=2
fájlt használjuk, 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, látni fogja, hogy a tar
jó jelöltnek kell lennie a “legtöbb parancssori opcióval rendelkező parancs” címre. Szerencsére ahhoz, hogy lehetővé tegyük fájlok kibontását .tar.gz
és tar.bz2
fájlokból, nagyfokú részletgazdálkodással, csak egy maroknyira kell emlékeznünk ezek közül az opciók közül.
Dave McKay először akkor használt számítógépeket, amikor divatban volt a lyukasztott papírszalag, és azóta programoz Több mint 30 év után az informatikai iparban ma teljes munkaidős technológiai újságíró. Pályafutása során szabadúszó programozóként, egy nemzetközi szoftverfejlesztő csapat vezetőjeként, informatikai szolgáltatások projektmenedzsereként dolgozott. Dave Linux evangélista és nyílt forráskódú szószóló. Olvassa el a teljes életrajzot “