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 BZ2 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 BZ2
Questa conversione ha una sola giustificazione onesta, ed è meglio metterla subito, perché ogni confronto generale fra i due formati suggerisce il contrario. La decompressione di XZ alloca un buffer grande quanto il dizionario, e il registro segna fino a 64 MB per questo formato. Su un portatile è invisibile. Su un router che flasha un firmware, dentro un container con un limite di memoria di 32 MB, in un initramfs o in una shell di emergenza, o su una vecchia macchina Unix commerciale con un limite per processo prudente, è la differenza fra l’archivio che si apre e l’estrattore che viene terminato.
La seconda versione dello stesso problema è che xz semplicemente non è installato. È arrivato nel 2009, un’epoca abbastanza recente perché parecchi sistemi longevi — apparecchi, strumenti, controllori industriali, un’immagine di build che qualcuno ha congelato — abbiano bzip2 e gzip e nulla di più nuovo. Aggiungere un binario a una macchina così è spesso impossibile per motivi che non hanno nulla a che fare con la tecnologia. Convertire l’archivio è il cambiamento che vi è permesso fare.
XZ, del 2009, è LZMA2: un compressore a finestra scorrevole con un dizionario che il registro segna fino a 64 MB. Comprimendo il byte cento milioni, può ancora vedere il byte trentasei milioni, ed è per questo che nota che un file alla fine di un archivio somiglia a uno all’inizio. Per decomprimerlo, chi legge deve tenere disponibile quella stessa finestra, perché un riferimento all’indietro può puntare ovunque al suo interno.
BZ2, del 1996, non scorre affatto. Taglia l’input in blocchi fino a 900 KB, ordina ciascuno con una trasformata di Burrows–Wheeler, e codifica il risultato. Un blocco è autonomo, quindi il decompressore tiene un blocco e nient’altro. Quella scelta progettuale è il motivo per cui bzip2 perde sul rapporto — non vede oltre i 900 KB — ed è esattamente la stessa scelta che lo rende economico da estrarre. Le due proprietà sono lo stesso fatto visto dai due estremi.
La penalità di dimensione è reale e la sua entità dipende interamente dal contenuto. Su un albero sorgente, un corpus di documenti, file di log o qualunque cosa con struttura ripetuta fra molti membri, XZ avrà trovato molto di ciò che bzip2 non può, e il BZ2 sarà visibilmente più grande. È il prezzo del risparmio di memoria e non c’è modo di evitarlo.
Su altri archivi la penalità si arrotonda a zero. Se l’XZ contiene fotografie, video, audio o un dump di database già compresso, il compressore forte non aveva nulla su cui lavorare; entrambi i formati stanno essenzialmente solo avvolgendo i dati, e i due file finiscono entro pochi punti percentuali l’uno dall’altro. Guardate i due numeri prima di impegnarvi in qualcosa a valle — è una delle poche conversioni dove la risposta varia di un ordine di grandezza da un archivio all’altro.
È facile presumere che il formato più debole sia più veloce in tutto, e non è ciò che succede. XZ è lento a comprimere, perché cercare in un dizionario di 64 MB è costoso, e relativamente veloce a decomprimere, perché seguire un riferimento all’indietro è vicino a una copia di memoria. Bzip2 è al contrario in un modo che conta: disfare una trasformata di Burrows–Wheeler è calcolo vero, quindi bzip2 estrae lentamente.
Vale la pena pianificarlo, perché in parte va contro il motivo della conversione. Un dispositivo vincolato ora ha bisogno di meno memoria e più tempo, e se ha anche un processore lento — cosa comune nei dispositivi piccoli — l’estrazione può richiedere molto più a lungo di quanto avrebbe fatto l’XZ. La memoria è il vincolo che rende un lavoro impossibile; il tempo è quello che lo rende fastidioso. Convertite quando vale il primo, e misurate il secondo prima di promettere a qualcuno un numero.
Entrambi sono compressori a flusso singolo e nessuno dei due sa cosa sia un file. Il registro elenca l’assenza di struttura a directory come problema noto per entrambi, ed è per questo che quasi sempre si trovano con dentro un TAR. Questa conversione estrae il tarball dall’XZ e ne scrive uno nuovo prima di comprimerlo con bzip2.
Nessuno dei due formati registra un nome file originale — gzip lo fa, questi due no — quindi l’estensione che mettete al download è l’unica etichetta che il file porterà mai. Chiamatelo `.tar.bz2`. La stessa proprietà senza nome ha causato un difetto reale in questo convertitore, dato che il tarball interno arriva da un XZ chiamato come lo aveva scelto l’estrattore invece che qualcosa di riconoscibile; il codice ora forza il tipo tar invece di indovinarlo dal nome, ed è per questo che oggi una sorgente xz viene estratta correttamente.
La memoria limitata è il punto principale, e c’è una seconda conseguenza adatta allo stesso lettore. Poiché i blocchi di bzip2 sono compressi indipendentemente, un file danneggiato non perde necessariamente tutto dopo il danno — strumenti di recupero possono trovare i confini dei blocchi intatti e salvare ciò che sopravvive. Uno stream xz troncato o corrotto in genere finisce lì.
Questo si adatta agli ambienti per cui è scritta questa pagina, che sono anche quelli dove lo storage è flash economico di qualità incerta, l’alimentazione si interrompe senza preavviso, e raramente c’è una seconda copia vicina. Non è una strategia di backup e non va venduta come tale: il TAR dentro è uno stream continuo, quindi recuperare alcuni blocchi produce un tarball con dei buchi, e ciò che ottenete dipende da dove è caduto il danno. È semplicemente un modo di fallire migliore dell’alternativa.
Se il motivo per lasciare XZ è la memoria o un binario mancante, gzip risolve entrambi almeno altrettanto bene e costa meno tempo. Serve una finestra di 32 KB — praticamente nulla — è presente su di fatto ogni sistema che ha un compressore qualunque, e decomprime molto più velocemente di bzip2 sui processori lenti che questi dispositivi tendono ad avere. L’unica cosa a cui rinuncia è il rapporto, e vi rinuncia più di quanto faccia bzip2.
Quindi il caso specifico per bzip2 è ristretto: la differenza di dimensione fra gzip e bzip2 conta davvero per il vostro trasferimento o il vostro budget di flash, e il tempo extra di decompressione è sostenibile. Se non conta, gzip è la destinazione migliore e la conversione è disponibile anche su questo sito. Sapere quale delle due pagine usare è più utile che essere venduti quella su cui si è capitati.
Sul nostro server, non nel vostro browser. La maggior parte degli strumenti qui gira sul vostro dispositivo e lo dice chiaramente; il reimpacchettamento degli archivi è una delle eccezioni, perché richiede 7-Zip e bzip2 come programmi reali. Il file viaggia su una connessione cifrata verso un container che li esegue, e quel container non ha accesso a internet in uscita di suo.
Ogni lavoro ottiene una directory di scratch su un filesystem in memoria, cancellata nel momento in cui il lavoro finisce qualunque sia l’esito, e ogni lavoro ancora in esecuzione dopo sessanta secondi viene terminato. Entrambe le metà di questa coppia sono lente — xz per estrarre un grande dizionario e bzip2 per comprimere — quindi il timeout è più vicino del solito. Il piano gratuito accetta 25 MB per file caricato, e l’archivio è rifiutato prima dell’estrazione se dichiara un’espansione oltre i 2 GB.
L’unica verifica che conta qui va fatta sul bersaglio. Copiate il BZ2 sul dispositivo, apparecchio o container che ha fallito sul file xz ed estraetelo lì — non sulla vostra workstation, dove entrambi i formati avrebbero funzionato e non avreste imparato nulla. Se anche bzip2 manca, lo avrete scoperto al costo di un trasferimento di file invece che nel mezzo di un deployment.
Poi confrontate l’elenco con l’originale: `tar tJf` sull’XZ e `tar tjf` sul BZ2 dovrebbero mostrare lo stesso numero e gli stessi percorsi. Questo è un reimpacchettamento senza perdita, quindi una differenza non è mai un file danneggiato — è strutturale, di solito una cartella iniziale presente in uno e assente nell’altro. Una volta che gli elenchi concordano e la macchina di destinazione ha estratto il risultato, l’XZ può andare in pensione.
| XZ | BZ2 | |
|---|---|---|
| Nome completo | Archivio XZ | Archivio Bzip2 |
| Estensione del file | .xz | .bz2 |
| Tipo di media | application/x-xz | application/x-bzip2 |
| Compressione | Senza perdita — non si butta via niente | Senza perdita — non si butta via niente |
| Prima pubblicazione | 2009 | 1996 |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Vecchio, ancora letto ovunque |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | GZ, 7Z | GZ |
Non si scarta nulla. XZ e BZ2 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 BZ2, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
BZ2 lavora su 900 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.
BZ2 risale al 1996. bzip2, 7-Zip e Keka lo leggono.
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. BZ2 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 BZ2 salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.