Archivio Tar Gzip (.tar.gz)
POSIX.1 StandardTar Gzip (.tar.gz, noto anche come .tgz) è il formato standard di distribuzione del software e di archiviazione del mondo Linux e open source, che unisce il packaging TAR nativo di Unix con la compressione Gzip universale.
Ispeziona e metadati
I sistemi operativi e gli analizzatori di file identificano i file TAR.GZ ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file TAR.GZ ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
1F 8B 08RAPPRESENTAZIONE ASCII: ..\x08
Standardizzazione: POSIX.1 ustar (RFC 1952 gzip wrapped)
Specifiche tecniche
| Architettura del container | Flusso di archivio POSIX ustar / GNU tar racchiuso all'interno di un contenitore di compressione Gzip RFC 1952 |
| Compressione | Confezionamento in due fasi: serializzazione TAR seguita da compressione DEFLATE |
| Endianness dei byte | Involucro Gzip Little-Endian che avvolge blocchi POSIX tar in ottale |
| Spazi colore | N/A (Contenitore di archiviazione) |
| Canali e struttura | Alberi di directory Unix multi-file, collegamenti simbolici, proprietà dei file e bit di permesso |
| Dimensioni massime | Dimensione dell'archivio in streaming illimitata |
| Trasparenza | Conservazione lossless bit-exact al 100% delle strutture del file system e dei dati |
| Streaming e progressivo | Streaming pipeable end-to-end: decomprimi ed estrai simultaneamente in un unico passaggio |
Matrice di confronto tecnico: TAR.GZ vs Concorrenti
| Attributo tecnico | TAR.GZ (Corrente) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Permessi Unix | Conservazione POSIX nativa al 100% | Limitati / spesso persi | Attributi di base conservati | Conservazione POSIX nativa al 100% |
| Rapporto di Compressione | Moderato (Gzip DEFLATE) | Moderato (ZIP DEFLATE) | Molto alto (LZMA2) | Alto (Bzip2 BWT) |
| Velocità di Decompressione | Veloce (~300 MB/s) | Veloce (~300 MB/s) | Moderata (~100 MB/s) | Lenta (~40 MB/s) |
| Standard dell'Ecosistema Linux | Predefinito universale open source | Predefinito per desktop consumer | Preferito dagli appassionati Windows | Vecchie release di codice sorgente Linux |
Modalità di corruzione comuni e guida al recupero Hex
La riga di comando segnala 'gzip: stdin: invalid compressed data--format violated'.
Causa principale: Byte corrotti nell'involucro Gzip o download troncato.
Ripristino: Tentare il recupero parziale usando File2File Archive Extractor o 'tar -izxf broken.tar.gz'.
Analisi di sicurezza e vettori di attacco del parser
Gli archivi TAR.GZ combinano i rischi sia delle bombe di compressione che degli attacchi di directory traversal se estratti con disattenzione.
Vettori di attacco noti
- Amplificazione in stile zip bomb in cui un minuscolo file .tar.gz si espande in terabyte di zeri.
- Directory traversal (es. '../../root/.ssh/authorized_keys') che sovrascrive file privilegiati.
- Creazione di nodi di dispositivi dannosi durante l'estrazione come root.
Migliori pratiche difensive: Estrarre gli archivi come utenti non privilegiati e igienizzare tutti i percorsi dei file di destinazione contro il directory traversal.
Origini storiche e tappe fondamentali
Vantaggi principali e pro
- Lo standard indiscusso per le release di codice sorgente open source, i pacchetti Linux e i layer di container Docker.
- Combina la completa conservazione dei permessi POSIX e dei collegamenti simbolici con una compressione Gzip affidabile e veloce.
- Completamente streamable: può essere scaricato, decompresso e scompattato tramite pipe di rete senza scrivere file temporanei su disco.
Limiti tecnici e svantaggi
- L'estrazione di un singolo file richiede la decompressione dell'intero archivio fino alla posizione di quel file.
- Rapporto di compressione inferiore rispetto ad alternative moderne come .tar.xz o .tar.zst.
- Meno intuitivo sui sistemi Windows meno recenti rispetto ai file .zip universali.
Curiosità tecniche interessanti
- Sui sistemi MS-DOS con limiti sui nomi di file 8.3, '.tar.gz' veniva abbreviato in '.tgz'.
- Ogni volta che esegui 'npm install', npm scarica ed estrae pacchetti .tgz (tar.gz) dietro le quinte.
- Gli utenti Linux ricordano notoriamente il comando per estrarre un file tar.gz con il mnemonico 'eXtract Ze File': tar -xzf file.tar.gz.
Domande tecniche frequenti
Qual è la differenza tra .tar.gz e .zip?
.zip comprime ciascun file singolarmente e ha una directory centrale alla fine. .tar.gz combina prima tutti i file in un unico flusso, preservando l'intera gamma di permessi e collegamenti simbolici di Linux.
.tgz è la stessa cosa di .tar.gz?
Sì. .tgz è semplicemente un'estensione di file abbreviata a 3 lettere per .tar.gz, creata originariamente per i sistemi operativi con limiti di nomi di file brevi 8.3 come il DOS.
Come posso estrarre un file .tar.gz su Windows?
Puoi estrarre i file .tar.gz direttamente nel tuo browser web usando File2File.app senza installare WinRAR o 7-Zip.