Cum să extrageți fișiere dintr-un fișier .tar.gz sau .tar.bz2 pe Linux
Publicat: 2022-01-29Fiș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.
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, 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.
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
Î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.
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/
Căutând în directorul nostru Documents/Songs, vom vedea că directorul Guitar Songs a fost creat.
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
.
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.
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/”
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 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 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
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
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.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · top · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști