15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
31.07.2025

Cum să dezarhivezi un fișier Tar în Linux: Un ghid avansat pentru utilizatori experimentați

Extragerea .tar, .tar.gz, .tar.bz2 și a altor formate tarball este o abilitate fundamentală în administrarea sistemelor Linux, conductele DevOps și gestionarea serverelor. Deși comanda tar pare simplă la prima vedere, administratorii experimentați pot valorifica steagurile sale avansate, integrările de scripting și gestionarea cazurilor limită pentru a obține precizie chirurgicală asupra operațiunilor de arhivă.

Acest ghid cuprinzător acoperă totul, de la decompresarea de bază la extragerea condiționată, verificarea integrității, benchmarking și automatizarea fluxurilor de lucru — totul ce are nevoie un utilizator avansat pentru a stăpâni tar pe Linux.

Ce este un fișier .tar?

Un fișier .tar — prescurtare pentru Tape Archive — este un format de arhivă consolidat care grupează mai multe fișiere și directoare într-un singur fișier, păstrând:

  • Structura directoarelor
  • Permisiunile fișierelor
  • Metadatele de proprietate
  • Marcajele de timp

În mod implicit, arhivele .tar nu sunt comprimate. Compresia se aplică ca un strat suplimentar folosind formate precum .gz, .bz2, .xz sau .zst. Acest design modular oferă administratorilor control granular asupra echilibrului între viteza și raportul de compresie.

FormatExtensieInstrument de compresie
Fără compresie.tar
Gzip.tar.gz / .tgzgzip
Bzip2.tar.bz2bzip2
XZ.tar.xzxz
Zstandard.tar.zstzstd

Comenzi de extragere de bază

1. Extragerea unui fișier .tar (Fără compresie)

tar -xf archive.tar

2. Extragerea unui fișier .tar.gz sau .tgz

tar -xzf archive.tar.gz

3. Extragerea unui fișier .tar.bz2

tar -xjf archive.tar.bz2

4. Extragerea unui fișier .tar.xz

tar -xJf archive.tar.xz

5. Extragerea unui fișier .tar.zst (Zstandard)

tar --use-compress-program=unzstd -xf archive.tar.zst

> Notă: Zstandard (.zst) oferă un raport excelent viteză-compresie și este din ce în ce mai frecvent în distribuțiile Linux moderne și straturile imaginilor containerelor.

Steaguri comune și funcțiile lor

Înțelegerea steagurilor tar este esențială pentru scrierea scripturilor fiabile și gestionarea scenariilor complexe de extragere. Mai jos se află un tabel de referință cu opțiunile cele mai importante:

SteagFuncție
-xExtragerea fișierelor dintr-o arhivă
-fSpecificarea fișierului de arhivă de utilizat
-vIeșire detaliată — listează fișierele pe măsură ce sunt extrase
-zFiltrare prin compresie gzip
-jFiltrare prin compresie bzip2
-JFiltrare prin compresie xz
-C <dir>Schimbarea în directorul specificat înainte de extragere
--strip-components=NEliminarea primelor N componente de cale din numele fișierelor
--wildcardsActivarea potrivirii modelelor cu caractere de înlocuire în timpul extragerii
--no-same-ownerNerestaurarea proprietății fișierelor (util pentru utilizatorii non-root)
--overwriteSuprascrierea fișierelor existente fără solicitare
--exclude=PATTERNExcluderea fișierelor care se potrivesc cu modelul specificat
--ignore-zerosOmiterea blocurilor pline cu zerouri (util pentru arhivele corupte)
-tListarea conținutului arhivei fără extragere

Exemple avansate de extragere

Extragerea într-un director specific

Direcționați conținutul extras către o cale țintă folosind steagul -C:

tar -xf archive.tar.gz -C /opt/myapp

> Directorul țintă trebuie să existe înainte de a rula această comandă. Utilizați mkdir -p /opt/myapp dacă este necesar.

Aplatizarea structurii arhivei (Eliminarea folderului de nivel superior)

Când o arhivă înfășoară totul într-un singur director de nivel superior, utilizați --strip-components pentru a-l elimina:

tar -xf archive.tar.gz --strip-components=1

Acest lucru este deosebit de util atunci când implementați aplicații direct într-un director țintă fără un strat de folder intermediar.

Extragerea doar a fișierelor specifice

Puteți extrage fișiere individuale specificând căile lor așa cum apar în arhivă:

tar -xf archive.tar.gz path/to/file1 path/to/file2

Extragerea fișierelor care se potrivesc cu un model cu caractere de înlocuire

Utilizați --wildcards pentru a filtra extragerea după model:

tar -xf archive.tar.gz --wildcards '*.conf'

Aceasta extrage doar fișierele de configurare .conf din arhivă — ideal pentru restabilirea selectivă a configurației fără a atinge alte date.

Excluderea fișierelor în timpul extragerii

Excludeți fișiere sau modele specifice din a fi extrase:

tar -xf archive.tar.gz --exclude='*.log'

Puteți înlănțui mai multe steaguri --exclude pentru a filtra mai multe modele simultan.

Benchmarking timpului de extragere

Utilizați utilitarul time pentru a măsura cât timp durează extragerea — util atunci când comparați formate de compresie sau optimizați fluxurile de lucru de backup:

time tar -xf archive.tar.gz

Gestionarea cazurilor limită

🧱 Tratarea arhivelor corupte

Dacă o arhivă este parțial coruptă — de exemplu, din cauza unei descărcări întrerupte sau a unei erori de disc — utilizați --ignore-zeros pentru a sări peste blocurile corupte pline cu zerouri și recuperați cât mai multe date posibil:

tar -xzf broken.tar.gz --ignore-zeros

Acest steag spune tar să continue procesarea chiar și atunci când întâlnește EOF neașteptat sau blocuri cu zerouri, maximizând recuperarea datelor.

🔍 Previzualizarea conținutului arhivei înainte de extragere

Inspectați întotdeauna o arhivă înainte de a o extrage, mai ales atunci când lucrați cu surse neîncredute sau medii de producție:

tar -tf archive.tar.gz

Aceasta listează toate fișierele din arhivă fără a scrie nimic pe disc.

✅ Verificarea integrității pentru arhivele comprimate cu Gzip

Verificați că o arhivă .tar.gz nu este coruptă înainte de a încerca extragerea:

gzip -t archive.tar.gz && echo "Archive integrity OK"

Pentru arhivele .tar.xz:

xz --test archive.tar.xz && echo "Archive integrity OK"

Încorporarea verificărilor de integritate în scripturile automatizate previne implementările eșuate cauzate de fișiere de backup corupte.

Sfaturi de scripting pentru administratorii de sisteme

Integrarea tar în scripturile shell este una dintre cele mai puternice moduri de a automatiza fluxurile de lucru de backup, implementare și restabilire pe serverele Linux.

Script de backup automatizat

#!/bin/bash
TARGET_DIR="/var/www"
ARCHIVE="/backups/site-$(date +%F).tar.gz"

tar -czf "$ARCHIVE" -C "$TARGET_DIR" . && echo "Backup saved to $ARCHIVE"

Acest script creează o arhivă comprimată cu marcaj de dată a directorului rădăcinii web. Asociați-l cu o sarcină cron pentru backup-uri zilnice complet automatizate.

Script de despachetare și implementare automatizată

#!/bin/bash
SRC="$1"
DEST="$2"

mkdir -p "$DEST"
tar -xzf "$SRC" -C "$DEST" --strip-components=1

Transmiteți calea arhivei și directorul de destinație ca argumente. Steagul --strip-components=1 asigură că directorul de nivel superior este eliminat, plasând fișierele direct în $DEST.

Extragere paralelă pentru arhive mari

Pe serverele multi-core, puteți accelera extragerea arhivelor .tar.gz folosind pigz (gzip paralel):

tar -I pigz -xf large-archive.tar.gz -C /destination

Acest lucru este deosebit de valoros pe VPS Hosting sau Servere dedicate cu mai multe nuclee CPU, unde decompresiunea paralelă poate reduce semnificativ timpii de implementare.

Cazuri de utilizare practice în mediile de server

Înțelegerea profundă a ###PPT_NOTR_

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți