Archivio Tar Gzip (.tar.gz)
POSIX.1 StandardTar Gzip (.tar.gz, cunoscut și sub numele de .tgz) este formatul standard pentru distribuția de software și împachetarea arhivelor în ecosistemul Linux și open-source, combinând împachetarea TAR nativă Unix cu compresia universală Gzip.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele TAR.GZ prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele TAR.GZ prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
1F 8B 08REPREZENTARE ASCII: ..\x08
Standardizare: POSIX.1 ustar (împachetat cu gzip conform RFC 1952)
Specificații tehnice
| Arhitectură container | Flux de arhivă POSIX ustar / GNU tar, împachetat într-un container de compresie Gzip conform RFC 1952 |
| Compresie | Împachetare în două etape: serializare TAR, apoi compresie DEFLATE |
| Ordinea octeților | Înveliș gzip little-endian care conține blocuri tar POSIX în notație octală |
| Spații de culoare | N/A (Archive Container) |
| Canale și structură | Arbori de directoare Unix cu mai multe fișiere, legături simbolice, proprietari de fișiere și biți de permisiuni |
| Dimensiuni maxime | Dimensiune nelimitată pentru arhivele transmise în flux |
| Transparență | 100% bit-exact lossless preservation of filesystem structures and data |
| Streaming și progresiv | Transmitere în flux de la un capăt la altul: decomprimarea și extragerea au loc simultan, într-o singură trecere |
Matrice de comparație tehnică: TAR.GZ vs. concurenți
| Atribut tehnic | TAR.GZ (Curent) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Permisiuni Unix | Stochează metadatele POSIX acceptate de arhivă și programul de extragere | Limitate / adesea pierdute | Atribute de bază păstrate | Metadate POSIX selectate, acceptate de programul de extragere |
| Rată de compresie | Moderată (Gzip DEFLATE) | Moderată (ZIP DEFLATE) | Foarte ridicată (LZMA2) | Ridicată (Bzip2 BWT) |
| Viteză de decompresie | Rapidă (~300 MB/s) | Rapidă (~300 MB/s) | Moderată (~100 MB/s) | Lentă (~40 MB/s) |
| Standard în ecosistemul Linux | Frecvent folosit la împachetarea software-ului cu sursă deschisă | Implicit pentru desktopul de consum | Favorit printre entuziaștii Windows | Lansări sursă Linux vechi |
Moduri comune de corupție și ghid de recuperare hexazecimală
Linia de comandă raportează „gzip: stdin: invalid compressed data--format violated".
Cauză principală: Octeți corupți în formatul Gzip sau descărcare trunchiată.
Recuperare: Încearcă recuperarea parțială folosind File2File.app Archive Extractor sau comanda „tar -izxf broken.tar.gz”.
Analiză de securitate și vectori de atac asupra parserului
Arhivele TAR.GZ combină riscurile bombelor de compresie și ale atacurilor de parcurgere a directoarelor dacă sunt extrașe fără precauție.
Vectori de atac cunoscuți
- Amplificare de tip bombă ZIP, unde un fișier .tar.gz mic se extinde la terabiți de zerouri.
- Parcurgere a directoarelor (de exemplu, „../../root/.ssh/authorized_keys") care suprascrie fișiere privilegiate.
- Creare malițioasă de noduri de dispozitiv în timpul extracției ca root.
Cele mai bune practici de securitate: Extrage arhivele ca utilizatori fără privilegii și validează toate căile fișierelor de destinație pentru a preveni traversarea directoarelor.
Origini istorice și repere
Avantaje cheie și beneficii
- Standardul incontestabil pentru lansări de cod sursă open-source, pachete Linux și straturi de containere Docker.
- Combină păstrarea completă a permisiunilor POSIX și a legăturilor simbolice cu o compresie Gzip rapidă și fiabilă.
- Poate fi procesat integral în flux continuu: poate fi descărcat, decomprimat și despachetat prin conducte de rețea fără a scrie fișiere temporare pe disc.
Limitări tehnice și dezavantaje
- Extragerea unui singur fișier necesită decomprimarea întregii arhive până la locația acelui fișier.
- Rată de compresie mai mică decât alternativele moderne precum .tar.xz sau .tar.zst.
- Mai puțin intuitiv pe sistemele Windows vechi decât formatul ZIP, acceptat pe scară largă.
Curiozități tehnice interesante
- Pe sistemele MS-DOS cu limite de nume de fișiere 8.3, „.tar.gz" a fost scurtat la „.tgz".
- De fiecare dată când rulezi „npm install", npm descarcă și extrage pachete .tgz (tar.gz) în fundal.
- Utilizatorii de Linux își amintesc bine comanda de extragere a unui fișier tar.gz folosind mnemotehnica „eXtract Ze File": tar -xzf file.tar.gz.
Întrebări tehnice frecvente
Care este diferența dintre .tar.gz și .zip?
.zip stochează fișierele cu un director central, în timp ce .tar.gz încapsulează un flux TAR în Gzip. Păstrarea metadatelor depinde de arhivă și de setările de extragere.
Este .tgz același lucru cu .tar.gz?
Da. .tgz este pur și simplu o extensie de fișier de 3 litere, abreviere pentru .tar.gz, creată inițial pentru sistemele de operare cu limite scurte de denumire 8.3, cum ar fi DOS.
Cum pot extrage un fișier .tar.gz pe Windows?
Poți extrage fișiere .tar.gz direct în browserul web folosind File2File.app, fără a instala WinRAR sau 7-Zip.