Archivio Tar Gzip (.tar.gz)
POSIX.1 StandardTar Gzip (.tar.gz, noto anche come .tgz) combina un archivio TAR con la compressione Gzip ed è usato comunemente per distribuire software e impacchettare file.
Ispezione 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 contenitore | 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 | Contenitore Gzip con codifica little-endian che racchiude blocchi tar POSIX 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 senza perdita e bit per bit al 100% delle strutture del file system e dei dati |
| Streaming e progressivo | Streaming completo tramite pipe: decompressione ed estrazione simultanee in un solo passaggio |
Matrice di confronto tecnico: TAR.GZ vs Concorrenti
| Attributo tecnico | TAR.GZ (Attuale) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Permessi Unix | Memorizza i metadati POSIX supportati dall’archivio e dall’estrattore | Limitati / spesso persi | Attributi di base conservati | Metadati POSIX selezionati supportati dall’estrattore |
| 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 nell’ecosistema Linux | Predefinito universale open source | Predefinito per i computer desktop di fascia consumer | Preferito dagli appassionati di Windows | Versioni legacy del codice sorgente Linux |
Modalità di corruzione comuni e guida al recupero esadecimale
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.app Archive Extractor o 'tar -izxf broken.tar.gz'.
Analisi di sicurezza e vettori di attacco del parser
Gli archivi TAR.GZ combinano i rischi delle bombe di compressione e degli attacchi di attraversamento delle directory se estratti senza cautela.
Vettori di attacco noti
- Bomba di decompressione: un piccolo file .tar.gz può espandersi 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 verificare che tutti i percorsi dei file di destinazione non consentano l'attraversamento delle directory.
Origini storiche e tappe fondamentali
Vantaggi principali
- I progetti software pubblicano spesso gli archivi sorgente come .tar.gz perché TAR raggruppa la struttura delle directory e Gzip comprime il flusso.
- Il livello TAR di un file .tar.gz può registrare permessi e collegamenti simbolici. Il ripristino dipende dall’estrattore e dal sistema operativo di destinazione; controlla i permessi dopo l’estrazione su un’altra piattaforma.
- Può essere scaricato, decompresso ed estratto 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 al formato ZIP, ampiamente supportato.
Curiosità tecniche
- 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 memorizza i file con una directory centrale, mentre .tar.gz racchiude un flusso TAR in Gzip. La conservazione dei metadati dipende dall’archivio e dalle impostazioni di estrazione.
.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.