Comando bzip2 in Linux: comprimere file .bz2 e conservare l’originale
bzip2 comprime i singoli file nel formato .bz2. Usa -k se vuoi conservare l’originale: normalmente la compressione riuscita sostituisce il file di input con quello compresso, senza creare un archivio di directory.
Per più file, bzip2 normalmente produce un risultato separato per ciascun input. Se devi riunire file e percorsi in una sola unità, combinalo con tar e la sua opzione di compressione bzip2, per esempio tramite l’operazione tar -cjf.
Sintassi e preparazione
bzip2 [options] [files...]
Sostituisci i segnaposto con opzioni e file reali. Controlla la versione con bzip2 --version e consulta man bzip2: il comando installato e le sue opzioni possono variare tra ambienti.
Prepara un file normale data.csv leggibile e una directory dove puoi scrivere. Prima dell’esercizio controlla che data.csv.bz2 e data-copy.csv.bz2 non siano già presenti con dati da conservare. Usa una copia di prova; per un file modificato da un’applicazione, predisponi prima una sorgente coerente.
Prevedi spazio per input e output quando mantieni l’originale. La compressione è senza perdita: il risultato decompresso deve riprodurre i byte iniziali, ma non ogni file diventa più piccolo. Per dati molto piccoli il costo del formato può superare il risparmio.
Creare il file compresso e controllarlo
Conserva la sorgente. Con -k crei data.csv.bz2 mantenendo anche data.csv:
bzip2 -k data.csv
Scegli un altro nome. Con -c bzip2 invia il risultato allo standard output e mantiene l’input; la shell salva i dati a destra della redirezione:
bzip2 -c data.csv > data-copy.csv.bz2
La protezione di bzip2 contro l’output esistente non protegge dalla redirezione della shell: > può troncare il file di destinazione prima che il programma termini, anche se la compressione poi fallisce. Scegli un nome nuovo e non indicare mai l’input stesso come uscita.
Verifica lo stream. Il test esegue una decompressione di controllo scartando il risultato, senza creare il file ripristinato sul disco:
bzip2 -t data.csv.bz2
Un controllo normale di solito è silenzioso. Controlla subito il codice di uscita con echo $? in una shell POSIX, prima di eseguire altro: bzip2 usa 0 per l’uscita normale, 1 per problemi di ambiente o uso, 2 per dati compressi corrotti e 3 per un errore di consistenza interno.
Esempio minimo e prova di ripristino
In una directory di prova prepara un piccolo note.txt con testo noto, per esempio hello seguito da un ritorno a capo. Assicurati che note.txt.bz2 sia un nome disponibile, poi esegui:
bzip2 -c note.txt > note.txt.bz2
bzip2 -t note.txt.bz2
ls note.txt*
L’elenco deve comprendere questi nomi:
note.txt note.txt.bz2
La disposizione su una o più righe e gli spazi dipendono dal terminale e da ls. Verifica la presenza di entrambi i file e lo stato del test prima di passare a ls: dopo ls, echo $? indica il risultato di ls, non quello di bzip2.
La sola presenza del file o il superamento di -t non dimostrano che hai salvato la sorgente desiderata. Per dati importanti prova anche il ripristino e confrontalo con il contenuto atteso. Puoi leggere i dati decompressi con bzip2 -dc note.txt.bz2; per salvarli, scegli un nuovo file di uscita e applica le stesse precauzioni sulla redirezione. Evita di inviare dati binari direttamente al terminale.
In una prova locale del 3 novembre 2026 con bzip2 1.0.8 di Git for Windows, -k e -c hanno mantenuto l’input e la decompressione ha restituito gli stessi byte della sorgente. Sono stati confermati il test silenzioso, l’esempio note.txt, la sostituzione predefinita su un file sacrificabile e il rifiuto di un output già esistente. Due prove con -1 e -9 hanno prodotto intestazioni BZh1 e BZh9 e contenuti ripristinati identici; non sono state misurate velocità, memoria o prestazioni comparative. Sono prove su Windows, non un ripristino di metadati Linux.
Opzioni e dimensione del blocco
| Opzione | Funzione |
|---|---|
-k |
Mantiene il file di input. |
-c |
Scrive il risultato sullo standard output. Controlla separatamente la destinazione della shell. |
-t |
Verifica i dati compressi senza salvare il contenuto ripristinato. |
-1 ... -9 |
Sceglie blocchi da 100 kB a 900 kB durante la compressione. |
-v |
Mostra informazioni dettagliate sull’elaborazione. |
Le cifre da -1 a -9 controllano il blocco, non una percentuale di riduzione garantita. La scelta influisce sul compromesso fra memoria e compressione; non trattare -1 come promessa di un forte aumento di velocità. Valuta i dati reali e i limiti dell’ambiente anziché scegliere soltanto dal nome dell’opzione.
Sovrascritture, backup e riservatezza
Senza -k la compressione predefinita elimina l’input dopo il successo. Inoltre bzip2 normalmente rifiuta file di uscita già presenti, mentre -f può forzarne la sostituzione. Non aggiungere -f per eliminare un errore senza prima verificare quale copia perderesti.
La compressione non cifra i dati e il controllo di integrità non certifica la provenienza del contenuto. Mantieni copie indipendenti e verifica il recupero prima di eliminare materiali importanti. In caso di errore conserva la sorgente valida e considera incompleto un risultato parziale; controlla spazio, permessi e messaggi prima di riprovare.
Domande frequenti
Posso usare bzip2 data/ per ottenere un unico archivio della directory?
bzip2 non riunisce direttamente una directory. Usa tar, per esempio tar -cjf data.tar.bz2 data/, dopo avere controllato sorgente e nome di uscita.
Perché il file compresso è più grande dell’originale?
Su file molto piccoli o poco comprimibili il formato può aggiungere più dati di quanti ne risparmi. Il successo del comando non garantisce una riduzione di dimensione; confronta i file e verifica che la compressione sia utile per il tuo caso.
Documentazione ufficiale
Il manuale ufficiale di bzip2 descrive opzioni, codici di uscita e gestione dei blocchi. Verifica anche la pagina man dell’installazione che stai utilizzando.




