Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti XZ in GZ gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. Il file viaggia cifrato fino al nostro server, viene convertito lì e viene cancellato appena il lavoro finisce.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
XZ in GZ
Chi arriva su questa pagina raramente ha creato il file. Un progetto a monte pubblica un .tar.xz, e ora va servito a qualcun altro: replicato su un archivio interno, allegato a una release aziendale, messo dietro un link di download per un pubblico di cui non controlli le macchine né le abitudini. A monte hanno scelto XZ per ottimizzare la banda verso un pubblico tecnico; tu stai ottimizzando per chiunque clicchi il link.
L’altra versione è un runtime piuttosto che una persona. Uno script Python o Go apre gzip con un import di libreria standard e ha bisogno di una dipendenza o di un sottoprocesso per qualunque altra cosa; una funzione serverless o un’immagine container irrigidita spesso non può averne una. In entrambi i casi il vincolo è esterno, e per chiunque non lo abbia il consiglio onesto resta lasciare l’XZ com’è.
Il vantaggio di gzip non è tecnico, è storico, e si accumula. DEFLATE fu pubblicato come RFC 1951 nel maggio 1996 e il contenitore gzip come RFC 1952 nello stesso mese; lo stesso algoritmo sta dentro PNG, dentro ogni file ZIP, dentro l’intestazione HTTP Content-Encoding: gzip, dentro un oggetto Git. Qualunque piattaforma già fa una di queste cose ha già un’implementazione DEFLATE, quindi esporre un lettore gzip non costa nulla.
XZ, dal 2009, non ha avuto un veicolo del genere. È un formato eccellente e va installato come tale. Su Linux è banale, perché il gestore pacchetti già ne dipende; altrove è una decisione che qualcuno deve prendere consapevolmente. Quando consegni un file a un ambiente sconosciuto, questa differenza è tutta la domanda.
Il divario tra i due formati è un solo numero: DEFLATE di gzip cerca in una finestra di 32 KB, e LZMA2 di XZ lavora con un dizionario fino a 64 MB. Quando gzip sta comprimendo il byte un milione può guardare indietro fino al byte novecentosessantottomila e non oltre; XZ può ancora vedere l’inizio dell’archivio.
Su archivi di molti file simili non è una differenza marginale. Duecento file sorgente con la stessa intestazione di licenza, un anno di righe di log che ricalcano gli stessi quaranta modelli — XZ impara ogni pattern una volta sola, gzip lo reimpara di continuo. Dove l’archivio contiene già JPEG o MP4, invece, questa conversione costa quasi nulla.
Gzip decodifica dall’inizio alla fine con una finestra fissa di 32 KB e nessun indice, ed è da qui che nasce la sua proprietà più utile: un tarball gzippato può essere consumato man mano che arriva. Un download che non tocca mai il disco, un server che comprime una risposta non ancora terminata, uno spedizioniere di log che comprime al volo senza sapere quanto ne arriverà ancora.
Anche XZ si può trasmettere in streaming, ma la memoria che serve è proporzionale al suo dizionario invece che fissa. Una pipeline dove il consumatore è piccolo — un dispositivo embedded, un contenitore con memoria limitata — può consumare uno stream gzip di lunghezza qualsiasi e potrebbe non riuscire a consumare uno stream xz.
La conversione estrae l’archivio e scrive un TAR nuovo dai contenuti prima di comprimerlo. Ogni file dentro esce identico byte per byte — è un rimpacchettamento senza perdite — ma il tarball è nuovo, quindi l’ordine dei membri, le date registrate e i permessi possono differire da quelli a monte, e nessuna checksum pubblicata verificherà contro il risultato.
Per una replica è una questione di presentazione, non di correttezza. Pubblica una tua checksum del file che stai realmente servendo, e dichiara che l’artefatto canonico resta il .tar.xz a monte con la sua firma. Quello che non va fatto è distribuire un file rimpacchettato con l’hash originale o lasciare intendere che siano lo stesso oggetto.
Una piccola cosa migliora in questa direzione. Uno stream gzip ha un campo di intestazione per il nome originale del file, uno stream xz non ha nulla del genere — xz memorizza un controllo di integrità e niente sulla provenienza. Questa asimmetria è il motivo per cui scompattare un .gz può restituire un file con un nome sensato mentre scompattare un .xz lascia spesso un file senza estensione che si rivela essere un archivio.
È una cortesia, non una garanzia: molti strumenti scrivono un nome generico nel campo e molti altri lo ignorano in estrazione. L’estensione resta ciò che verrà effettivamente letta, quindi conviene chiamare il download .tar.gz prima di pubblicarlo.
Se il vincolo è puramente di memoria e non di disponibilità, bzip2 merita di essere considerato al posto di gzip: lavora in blocchi indipendenti di al massimo 900 KB, quindi serve pochissimo per scompattarlo, e comprime meglio di gzip sul testo. Il costo è il tempo di decompressione, perché disfare una trasformazione di Burrows-Wheeler è calcolo vero, non semplice movimento di dati.
La domanda giusta è quale guasto stai davvero aggirando. Qualcosa ha segnalato di non poter allocare memoria, su un dispositivo lento con tempo a disposizione — bzip2 è una risposta ragionevole. Qualcosa non ha riconosciuto il formato, o stai consegnando il file a persone e non a macchine — gzip, senza esitazione.
Sul nostro server, non nel tuo browser. La maggior parte degli strumenti su questo sito converte sul tuo dispositivo e lo dichiara apertamente; il lavoro sugli archivi è una delle eccezioni, perché richiede 7-Zip, xz e gzip come programmi veri. Il file viaggia su una connessione cifrata verso un contenitore che li esegue e non ha accesso a internet in uscita.
Ogni lavoro riceve una cartella temporanea su un filesystem in memoria, distrutta appena il lavoro finisce comunque vada, e interrotto dopo sessanta secondi perché un archivio malformato mette un compressore in loop più spesso di quanto lo faccia fallire. Il livello gratuito accetta 25 MB per file caricato, e l’archivio viene rifiutato prima dell’estrazione se dichiara un’espansione oltre 2 GB.
| XZ | GZ | |
|---|---|---|
| Nome completo | Archivio XZ | Archivio Gzip |
| Estensione del file | .xz | .gz, .tgz |
| Tipo di media | application/x-xz | application/gzip |
| Compressione | Senza perdita — non si butta via niente | Senza perdita — non si butta via niente |
| Prima pubblicazione | 2009 | 1992 |
| Specifica | — | RFC 1952 |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | BZ2, 7Z | BZ2, ZIP |
Non si scarta nulla. XZ e GZ salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.
7-Zip e Keka leggono sia XZ sia GZ, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
GZ lavora su 32 KB alla volta contro 8 MB di XZ: la ripetizione deve cadere tutta dentro questo spazio perché possa essere compressa via. Da lì viene la differenza di compressione e per questo è il più rapido dei due.
GZ risale al 1992, descritto in RFC 1952. gzip, 7-Zip e Keka lo leggono.
GZ è stato pubblicato nel 1992 e XZ nel 2009. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.
Sì: questa conversione ha bisogno di un software che in un browser non può girare. Il file viaggia cifrato fino al nostro server, viene cancellato appena il lavoro finisce e il risultato dopo 60 minuti. Il lavoro lo fa 7-Zip, l’archiviatore, nella sua forma da riga di comando.
Sì, fino a 100 conversioni al giorno per file fino a 25 MB. Quell’unico limite esiste perché questa conversione gira su un server che paghiamo noi. Per il resto qui non c’è niente di limitato, e la filigrana non c’è in nessun caso. Il limite esiste perché 7-Zip ha bisogno di una nostra macchina per girare.
No. GZ conserva lo stesso contenuto senza buttare via niente: il risultato è identico in qualità all’originale. I file escono identici byte per byte. Quello che non sopravvive è ciò che il contenitore sapeva *su* di loro e non ciò che teneva *dentro* di loro: una password e, su alcuni formati, i permessi e le date originali.
Non si scarta nulla. XZ e GZ salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.