Convertire BZ2 in GZ

Qui converti BZ2 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.

  • Dove gira Sul nostro server, perché un browser non fa girare il programma che questo richiede.
  • Senza perdita Non si butta via niente. GZ conserva esattamente ciò che BZ2 teneva.
  • Limite di dimensione Fino a 25 MB per file, gratis e senza account.
  • Vale la pena saperlo 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.

Fino a 100 file alla volta. Formati diversi insieme non sono un problema.

L’archivio bzip2 ancora in una pipeline che nessuno ha riscritto

Bzip2 ha avuto un buon decennio. Tra circa il 1998 e il 2010 era la risposta ovvia quando gzip non comprimeva abbastanza, e una grande parte di ciò che è stato pubblicato in quella finestra è ancora `.tar.bz2`: dataset di riferimento, corpora, tarball di kernel e sorgenti, depositi di dati scientifici, la fixture che una suite di test scarica ad ogni esecuzione da prima che chiunque oggi nel team si unisse.

L’archivio non è il problema. Il problema è che qualcosa lo decomprime con un programma, e la decompressione bzip2 è abbastanza lenta da essere visibile in un log di build. Nessuno rifarà il rilascio a monte, quindi la mossa pratica è ricomprimere localmente in qualcosa che si apra rapidamente e mettere quello in cache. È un lettore diverso da chi converte per archiviare, e punta a una risposta diversa: gzip, non XZ.

Perché annullare un ordinamento di blocco costa molto di più che seguire un riferimento all’indietro

I due formati si decomprimono in modi strutturalmente diversi e il divario non è una questione di qualità dell’implementazione. L’uscita di gzip è costruita copiando byte letterali e copiando corse precedenti da una finestra di 32 KB — il ciclo interno è essenzialmente movimento di memoria, e l’hardware moderno è estremamente bravo in quello.

Bzip2 deve invertire una trasformata di Burrows–Wheeler per ogni blocco fino a 900 KB. Questo significa ricostruire l’ordinamento originale da una permutazione ordinata, che è un passaggio sparso e ostile alla cache sull’intero blocco prima che un singolo byte di output sia finale, più l’annullamento degli strati move-to-front e Huffman attorno ad esso. È calcolo reale piuttosto che spostamento di dati, e nessuna quantità di tuning lo trasforma in velocità di memoria. Su un archivio di qualsiasi dimensione la differenza è minuti contro secondi.

La dimensione che restituite, e quando non è nulla

Aspettatevi che il GZ sia più grande, e aspettatevi che il margine dipenda interamente dal contenuto. Bzip2 vede fino a 900 KB di contesto alla volta dove gzip ne vede 32, quindi su prosa, log, CSV, codice sorgente e XML trova ripetizioni che gzip non può raggiungere e il divario è reale. Il registro registra esattamente quei due numeri, e sono l’intera spiegazione.

Su altri contenuti non c’è divario che valga la pena misurare. Un archivio bzip2 di JPG, PNG, MP3, MP4 o un file di database già compresso è a malapena compresso per cominciare — la ridondanza è stata rimossa da quei formati prima che l’archiviazione iniziasse — quindi ricomprimerlo come gzip costa quasi nulla e compra il pieno beneficio di velocità. Se questo descrive il vostro archivio, questa conversione è quasi gratuita e non c’è nulla da valutare.

Lo stream senza nome, e un bug che ha causato in questo convertitore

Uno stream gzip memorizza il nome del file originale nella sua intestazione. Uno stream bzip2 non memorizza nulla del genere — nessun nome, nessun percorso, nessun indizio su cosa contenga. Quella asimmetria normalmente è una curiosità e ha prodotto un difetto genuino qui, che è registrato nel codice sorgente del convertitore.

Il reimpacchettamento deve scartare il TAR che sta dentro un archivio compresso, e la prima versione del codice decideva se ne aveva trovato uno guardando il nome del file. Da un GZ funzionava, perché gzip aveva ricordato `output.tar`. Da un BZ2 o un XZ lo stesso tarball arrivava chiamato `input`, il controllo lo mancava, e la conversione produceva un archivio contenente un file opaco invece dei trenta che erano entrati — un successo che restituiva la cosa sbagliata. La correzione è stata forzare il tipo tar invece di inferirlo, che è il motivo per cui una sorgente bzip2 oggi è gestita correttamente.

Gzip è in posti in cui bzip2 non è mai arrivato

L’ubiquità è la seconda metà dell’argomento di questa conversione ed è facile da sottovalutare. DEFLATE è la compressione dentro HTTP `Content-Encoding: gzip`, dentro PNG, dentro un file ZIP e dentro un oggetto Git. Ogni linguaggio principale ce l’ha nella sua libreria standard — `gzip` di Python, `compress/gzip` di Go, `GZIPInputStream` di Java, `zlib` di Node — senza dipendenze da aggiungere e senza questioni di licenza a cui rispondere.

Bzip2 è una libreria separata che deve essere presente, e in un container minimale, un runtime bloccato, un browser o una cloud function spesso non c’è. Gzip è una codifica di contenuto HTTP registrata e bzip2 non lo è mai stata, quindi ogni client HTTP già ne decomprime uno e nessuno di essi decomprime l’altro. Se l’archivio sarà letto da codice piuttosto che da una persona a una shell, gzip rimuove una dipendenza oltre a un ritardo.

I blocchi che bzip2 poteva recuperare, e cosa perdete andandovene

Vale la pena nominare ciò che state dando via piuttosto che solo ciò che guadagnate. Bzip2 comprime ogni blocco indipendentemente, quindi un danno a un blocco non distrugge automaticamente tutto ciò che viene dopo, e strumenti di recupero possono percorrere un file corrotto e salvare i blocchi intatti. Uno stream gzip non ha tale struttura — un bit ribaltato a metà generalmente termina lì l’archivio.

Quanto conta dipende da dove vive il file. Su un filesystem moderno con checksum, su object storage che verifica ciò che restituisce, o ovunque con una seconda copia, conta molto poco. Su un singolo disco invecchiato che contiene l’unica copia di qualcosa di insostituibile, conta di più — e in quel caso la risposta giusta non è nessuno dei due formati ma un backup reale con dati di integrità per file. L’amichevolezza al recupero è un cattivo sostituto della ridondanza.

Quando saltare a XZ invece di passare a gzip

Se l’archivio viene conservato piuttosto che letto, gzip è la destinazione sbagliata e XZ è quella giusta — comprimerà gli stessi contenuti considerevolmente meglio di quanto abbia fatto bzip2 e si decomprime ancora più velocemente. Il lettore di questa pagina non è quella persona, ma molte persone che convertono un archivio bzip2 lo sono, e vale la pena che venga detto.

Il test è semplice: contate quanto spesso l’archivio viene decompresso. Spesso, da macchine, in un passaggio che qualcuno sta aspettando — gzip. Raramente, da una persona, da un bucket che addebita al gigabyte-mese — XZ. L’unico caso in cui bzip2 dovrebbe restare è una macchina con pochissima memoria, perché i blocchi fissi da 900 KB di bzip2 hanno bisogno di quasi nulla per essere decompressi dove XZ ha bisogno di un buffer scalato sul suo dizionario.

Dove l’archivio bzip2 viene decompresso sulla strada per gzip

Sul nostro server piuttosto che sul vostro dispositivo. La maggior parte degli strumenti su questo sito converte in locale e lo dice; gli archivi sono una delle eccezioni, perché il lavoro ha bisogno di 7-Zip e gzip come programmi reali. Il file viaggia su una connessione crittata verso un container che li esegue e che non ha accesso a internet in uscita proprio.

Il lavoro ottiene una directory di scratch su un filesystem appoggiato sulla memoria, cancellata nel momento in cui il lavoro finisce che abbia avuto successo o no, e viene terminato dopo sessanta secondi — che su questa coppia è un vincolo reale, dato che bzip2 è lento da decomprimere e un grande archivio di testo è esattamente l’input che prende il suo tempo. Il livello gratuito accetta 25 MB per file caricato, e prima che qualsiasi cosa venga estratta all’archivio viene chiesto cosa dichiara di espandersi, con un totale dichiarato sopra i 2 GB rifiutato subito.

Cronometrare l’estrazione prima e dopo, e tenere l’originale

Questa conversione vale la pena farla solo se i numeri lo dicono, e ottenerli è un lavoro di due minuti: cronometrate l’estrazione dell’archivio bzip2, cronometrate l’estrazione di quello gzippato, e mettete le due dimensioni di file accanto ad esse. Se l’archivio è piccolo o la pipeline lo decomprime una volta al mese, il risparmio è rumore e il cambiamento non vale il disturbo di aggiornare qualunque cosa punti al file.

Tenete l’originale bzip2 finché qualcosa non ha effettivamente consumato il nuovo file con successo. Non perché la conversione sia con perdita — non lo è, ogni membro esce byte per byte — ma perché il tarball è ricostruito piuttosto che passato attraverso, quindi ordine dei membri, timestamp e bit di permesso possono spostarsi, e una build che dipendeva da uno di essi fallisce in un modo che non sembra affatto un problema di archivio. Confrontate `tar tjf` sulla sorgente con `tar tzf` sul risultato prima, e mandate in pensione l’originale una volta che concordano.

Come convertire BZ2 in GZ

  1. Trascina il tuo file BZ2 su questa pagina, oppure fai clic per sceglierne uno.
  2. Scegli GZ come destinazione e avvia la conversione.
  3. Scarica il file GZ finito.

BZ2 o GZ: cosa cambia

BZ2 a confronto con GZ
BZ2GZ
Nome completoArchivio Bzip2Archivio Gzip
Estensione del file.bz2.gz, .tgz
Tipo di mediaapplication/x-bzip2application/gzip
CompressioneSenza perdita — non si butta via nienteSenza perdita — non si butta via niente
Prima pubblicazione19961992
SpecificaRFC 1952
LicenzaStandard apertoStandard aperto
Situazione attualeVecchio, ancora letto ovunqueAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoXZXZ, ZIP

Che cosa resta

Non si scarta nulla. BZ2 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.

Aprire il risultato

BZ2 risale al 1996 ed è largamente superato. GZ è ciò che scrivono i programmi attuali, quindi convertire serve anche a restare leggibili.

7-Zip e Keka leggono sia BZ2 sia GZ, quindi puoi confrontare il risultato con l'originale senza un secondo programma.

Dimensione e qualità

GZ lavora su 32 KB alla volta contro 900 KB di BZ2: 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.

A che cosa serve ciascun formato

GZ risale al 1992, descritto in RFC 1952. gzip, 7-Zip e Keka lo leggono.

Da BZ2 a GZ: domande frequenti

Il mio file BZ2 viene caricato da qualche parte?

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.

Convertire BZ2 in GZ è gratis?

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.

Si perde qualità convertendo BZ2 in GZ?

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.

La conversione da BZ2 a GZ è senza perdita?

Non si scarta nulla. BZ2 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.

Altro su questi formati