Cum să extrageți fișiere dintr-un fișier .tar.gz sau .tar.bz2 pe Linux

Publicat: 2022-01-29
Bash shell pe conceptul desktop Unity
Fatmawati Achmad Zaenuri/Shutterstock.com

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

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

Fișierele care au o extensie .tar.gz sau .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 a extensiei de fișier reprezintă arhiva arhivă și este motivul pentru care ambele tipuri de fișiere sunt numite fișiere tar. Fișierele tar datează din 1979, când comanda tar a fost creată pentru a permite administratorilor de sistem să arhiveze fișierele 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 mai folosește tar cu bandă.

Sufixul extensiei .gz sau .bz2 indică faptul că arhiva a fost comprimată, utilizând fie algoritmul de compresie gzip , fie bzip2 . Comanda tar va funcționa fericit cu ambele tipuri de fișiere, deci nu contează ce metodă de compresie a fost folosită - ș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.

Două fișiere tar în directorul de descărcări

Să extragem melodiile ukulele:

 tar -xvzf ukulele_songs.tar.gz
Publicitate

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

Extragerea tuturor fișierelor din fișierul tar

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

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

Listați fișierele din director cu ls și veți vedea că a fost creat un director 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.

Directorul de melodii pentru ukulele creat în directorul Descărcări

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 

Extragerea fișierului tar melodii de chitară din folderul Descărcări

Încă o dată, fișierele sunt listate pe terminal pe măsură ce sunt extrase. Pentru a fi clar, opțiunile din linia de comandă pe care le-am folosit cu tar pentru fișierul .tar.bz2 au fost:

  • -x : Extrageți, preluați fișierele din fișierul tar.
  • -v : Verbos, enumerați fișierele pe măsură ce sunt extrase.
  • -j : Bzip2, utilizați bzip2 pentru a decomprima fișierul tar.
  • -f : Fișier, numele fișierului tar cu care vrem să lucreze tar.

Dacă listăm fișierele din directorul Download, vom vedea că a fost creat un alt director numit Guitar Songs.

Directorul de melodii de chitară creat în directorul Descărcări

Alegerea de unde să extrageți fișierele

Dacă dorim să extragem fișierele într-o altă locație 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 Documents/Songs, vom vedea că directorul Guitar Songs a fost creat.

Directorul de cântece de chitară creat în directorul Documente/Cântece

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ă solicitați ca tar să extragă fișierele în toate într-o singură comandă, puteți face asta după cum urmează:

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

Opțiunea -p (părinți) determină mkdir să creeze orice directoare părinte care sunt necesare, asigurându-se că directorul țintă este creat.

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

Până acum am făcut un salt de credință și am extras fișierele nevăzute. S-ar putea să vrei să te uiți înainte de a sări. Puteți examina conținutul unui fișier tar înainte de a-l extrage folosind opțiunea -t (listă). De obicei, este convenabil să direcționați ieșirea prin comanda less .

 tar -tf ukulele_songs.tar.gz | Mai puțin

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

Conținutul fișierului tar este transmis prin mai puțin

Derulând prin rezultat, putem vedea că totul din fișierul tar este păstrat într-un director numit Ukulele Songs, iar în acel director există fișiere și alte directoare.

A doua vedere a conținutului fișierului tar transmis prin mai puțin

Publicitate

Putem vedea că directorul Ukulele Songs conține directoare numite Random Songs, Ramones și Possibles.

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/” 

Extragerea unui singur folder din fișierul tar

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” 

Extragerea unui singur fișier din fișierul tar

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

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

Extragerea cântecelor din tar cu metacaractere

Extragerea fișierelor fără a extrage directoare

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 directoarelor nu este replicată pe hard disk.

Dacă specificăm --strip-components=1 cu exemplul nostru de fișier tar, directorul Ukulele Songs cel mai de sus 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 

Extragerea fișierelor din fișierul tar cu --strip-components=1

Publicitate

Există doar două niveluri de imbricare a directoarelor în fișierul nostru de exemplu 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 

Extragerea fișierelor din fișierul tar cu --strip-components=2

Dacă te uiți la pagina de manual Linux, vei vedea că tar trebuie să fie un bun candidat 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 câteva dintre aceste opțiuni.

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști