Cum se extrag fișiere dintr-un fișier .tar.gz sau .tar.bz2 pe Linux

  • Dave McKay

    @TheGurkha

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

Fișierele Tar sunt arhive comprimate. Le veți întâlni frecvent în timp ce utilizați o distribuție Linux cum ar fi Ubuntu sau chiar în timp ce utilizați terminalul pe macOS. Iată cum să extrageți sau să eliminați conținutul unui fișier tar, cunoscut și sub numele de tarball.

Ce înseamnă .tar.gz și .tar.bz2?

Fișiere care au o .tar.gz sau o extensie .tar.bz2 sunt fișiere de arhivă comprimate. Un fișier cu doar o extensie .tar este necomprimat, dar acestea vor fi foarte rare.

Porțiunea .tar din extensia de fișier înseamnă arhivă de benzi și este motivul pentru care ambele tipuri de fișiere sunt denumite fișiere tar. Fișierele Tar datează din 1979 până când a fost creată comanda tar pentru a permite administratorilor de sistem să arhiveze fișiere pe bandă. Patruzeci de ani mai târziu, încă folosim comanda tar pentru a extrage fișierele tar pe hard disk-urile noastre. Cineva undeva probabil folosește încă tar cu bandă.

Publicitate

.gz sau .bz2 sufixul extensiei indică faptul că arhiva a fost comprimată, utilizând fie gzip, fie bzip2 algoritm de compresie. Comanda tar va funcționa fericit cu ambele tipuri de fișiere, deci nu contează ce metodă de compresie a fost utilizată – și ar trebui să fie disponibilă oriunde aveți un shell Bash. Trebuie doar să utilizați opțiunile corespunzătoare din linia de comandă tar.

Extragerea fișierelor din fișierele Tar

Să presupunem că ați descărcat două fișiere de partituri. Un fișier se numește ukulele_songs.tar.gz, celălalt se numește guitar_songs.tar.bz2. Aceste fișiere se află în directorul Descărcări.

Să extragem melodiile ukulele:

tar -xvzf ukulele_songs.tar.gz 

Pe măsură ce fișierele sunt extrase, acestea sunt listate în fereastra terminalului.

Opțiunile din linia de comandă pe care le-am folosit sunt:

  • -x: Extrageți, extrageți fișierele din fișierul tar.
  • – v: Verbose, listați fișierele pe măsură ce sunt extrase.
  • -z: Gzip, utilizați gzip pentru a decomprima fișierul tar.
  • -f: Fișier, numele tarului fișier cu care dorim să funcționeze tar. Această opțiune trebuie să fie urmată de numele fișierului tar.

Listează fișierele din director cu ls și vei vedea că un a fost creat directorul numit Ukulele Songs. Fișierele extrase se află în acel director. De unde a venit acest director? A fost conținut în fișierul tar și a fost extras împreună cu fișierele.

Publicitate

Acum, să extragem melodiile de chitară. Pentru a face acest lucru, vom folosi aproape exact aceeași comandă ca înainte, dar cu o diferență importantă. Sufixul extensiei .bz2 ne spune că a fost comprimat folosind comanda bzip2. În loc să folosim opțiunea -z (gzip), vom folosi opțiunea -j (bzip2).

tar -xvjf guitar_songs.tar.bz2

Din nou, fișierele sunt listate la terminal pe măsură ce sunt extrase. Pentru a fi clar, opțiunile de linie de comandă pe care le-am folosit cu tar pentru fișierul .tar.bz2 au fost:

Dacă listăm fișierele din directorul de descărcare vom vedea că a fost creat un alt director numit Melodii de chitară.

Alegerea unde să extragem fișierele

Dacă vrem să extragem fișierele într-o locație altul decât directorul curent, putem specifica un director țintă folosind opțiunea -C (director specificat).

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

Căutând în directorul nostru de documente / melodii, vom vedea că a fost creat directorul melodiilor chitare.

Rețineți că directorul țintă trebuie să existe deja, tar nu îl va crea dacă nu este prezent. Dacă trebuie să creați un director și să tar extrageți fișierele în el într-o singură comandă, puteți face acest lucru după cum urmează:

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

Opțiunea -p (părinți) face ca mkdir să creeze orice directoare părinte necesare, asigurând directorul țintă este creat.

Privind în interiorul fișierelor gudron înainte de a le extrage

Până acum tocmai am făcut un salt de credință și am extras fișierele la vedere nevăzute. S-ar putea să vă placă să vă uitați înainte de a sări. Puteți consulta conținutul unui fișier tar înainte de a-l extrage folosind opțiunea -t (list).De obicei, este convenabil să transmiteți ieșirea prin comanda less.

tar -tf ukulele_songs.tar.gz | less
Publicitate

Observați că nu este necesar să folosim opțiunea -z pentru a lista fișierele. Trebuie să adăugăm opțiunea -z numai atunci când extragem fișiere dintr-un fișier .tar.gz. La fel, nu avem nevoie de opțiunea -j pentru a lista fișierele dintr-un fișier tar.bz2.

Derulare rezultatul putem vedea că totul din fișierul tar este păstrat într-un director numit Melodii Ukulele, iar în acel director, există fișiere și alte directoare.

Putem vedea că directorul Melodii Ukulele conține directoare numite Melodii aleatoare, Ramone și Posibile.

Pentru a extrage toate fișierele dintr-un director dintr-un fișier tar utilizați următoarea comandă. Rețineți că calea este înfășurată între ghilimele, deoarece există spații în cale.

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

Pentru a extrage un singur fișier, furnizați calea și numele fișierului.

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

Puteți extrage o selecție de fișiere folosind metacaractere, unde * reprezintă orice șir de caractere și ? reprezintă orice caracter unic. Folosirea metacaracterelor necesită utilizarea opțiunii --wildcards.

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

Extragerea fișierelor fără extragerea directoarelor

Dacă nu doriți ca structura de directoare din fișierul tar să fie recreată pe hard disk, utilizați opțiunea --strip-components. Opțiunea --strip-components necesită un parametru numeric. Numărul reprezintă câte niveluri de directoare trebuie ignorate. Fișierele din directoarele ignorate sunt încă extrase, dar structura directorului nu este reprodusă pe hard diskul dvs.

Dacă specificăm --strip-components=1 cu exemplul nostru de fișier tar, Ukulele Songs cel mai important director din fișierul tar nu este creat pe hard disk. Fișierele și directoarele care ar fi fost extrase în acel director sunt extrase în directorul țintă.

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

Există doar două niveluri de imbricare a directorului în fișierul nostru exemplar tar. Deci, dacă folosim --strip-components=2, toate fișierele sunt extrase în directorul țintă și nu sunt create alte directoare.

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

Dacă vă uitați la pagina manuală Linux, veți vedea că tar trebuie să fie un candidat bun pentru titlul de „comandă care are cele mai multe opțiuni de linie de comandă.” Din fericire, pentru a ne permite să extragem fișiere din fișierele .tar.gz și tar.bz2 cu un grad bun de control granular, trebuie să ne amintim doar o mână dintre aceste opțiuni.

Dave McKay
Dave McKay a folosit prima dată computerele când banda de hârtie perforată era la modă și programează de atunci După peste 30 de ani în industria IT, el este acum jurnalist de tehnologie cu normă întreagă. În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare software, manager de proiect IT servicii și, cel mai recent , în calitate de responsabil cu protecția datelor. Dave este un evanghelist Linux și un avocat open source. Citește biografia completă „

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *