La compressione è molto utile quando si esegue il backup di file importanti e si inviano anche file di grandi dimensioni su Internet. In questo tutorial, discuteremo come comprimere e decomprimere i file in Linux utilizzando due programmi a riga di comando, vale a dire gzip e bzip2 .
Nota:
La compressione di un file già compresso aggiunge un sovraccarico aggiuntivo, quindi otterrai un file leggermente più grande. Quindi, smetti di comprimere un file compresso.
Comprimi e decomprimi file in Linux
Come già detto, i programmi più comunemente usati comprimono i file nei sistemi Linux e simili a Unix sono:
- zip
- bzip2
Per prima cosa, vedremo l'utilizzo di Gzip.
1. Comprimi e decomprimi i file usando il programma Gzip
gzip è un'utilità per comprimere e decomprimere file utilizzando l'algoritmo di codifica Lempel-Ziv (LZ77).
1.1 Comprimi file
Per comprimere un file denominato otechnix.txt , sostituendolo con una versione compressa con gzip, esegui:
$ gzip ostechnix.txt
Gzip sostituirà il file originale otechnix.txt con una versione compressa con gzip denominata otechnix.txt.gz .
Il comando gzip può essere utilizzato anche in altri modi. Un ottimo esempio è che possiamo creare una versione compressa dell'output di un comando specifico. Guarda il seguente comando.
$ ls -l Downloads/ | gzip > ostechnix.txt.gz
Il comando precedente crea una versione compressa dell'elenco delle directory della cartella Download.
1.2 Comprimi i file e scrivi l'output in file diversi (non sostituire il file originale)
Per impostazione predefinita, il programma gzip comprimerà il file specificato, sostituendolo con una versione compressa con gzip. È tuttavia possibile mantenere il file originale e scrivere l'output nello standard output. Ad esempio, il comando seguente comprime otechnix.txt e scrive l'output in output.txt.gz .
$ gzip -c ostechnix.txt > output.txt.gz
Allo stesso modo, per decomprimere un file gzippato specificando il nome del file di output:
$ gzip -c -d output.txt.gz > ostechnix1.txt
Il comando precedente decomprime output.txt.gz file e scrive l'output in otechnix1.txt file. In entrambi i casi, non cancellerà il file originale.
1.3 Decomprimi i file
Per decomprimere il file otechnix.txt.gz , sostituendolo con la versione originale non compressa, facciamo:
$ gzip -d ostechnix.txt.gz
Possiamo anche usare gunzip per decomprimere i file.
$ gunzip ostechnix.txt.gz
1.4 Visualizza i contenuti dei file compressi senza decomprimerli
Per visualizzare il contenuto del file compresso usando gzip senza decomprimerlo, usa -c flag come mostrato di seguito:
$ gunzip -c ostechnix1.txt.gz
In alternativa, usa zcat utilità come di seguito.
$ zcat ostechnix.txt.gz
Puoi anche reindirizzare l'output al comando "less" per visualizzare l'output pagina per pagina come di seguito.
$ gunzip -c ostechnix1.txt.gz | less
$ zcat ostechnix.txt.gz | less
In alternativa, c'è uno zless programma che svolge la stessa funzione della pipeline precedente.
$ zless ostechnix1.txt.gz
1.5 Comprimi il file con gzip specificando il livello di compressione
Un altro notevole vantaggio di gzip è che supporta il livello di compressione. Supporta 3 livelli di compressione come indicato di seguito.
- 1 - Il più veloce (peggiore)
- 9 - Più lento (migliore)
- 6 - Livello predefinito
Per comprimere un file denominato otechnix.txt , sostituendolo con una versione compressa gzippata con best livello di compressione, utilizziamo:
$ gzip -9 ostechnix.txt
1.6 Concatena più file compressi
È anche possibile concatenare più file compressi in uno solo. Come? Dai un'occhiata al seguente esempio.
$ gzip -c ostechnix1.txt > output.txt.gz
$ gzip -c ostechnix2.txt >> output.txt.gz
I due comandi precedenti comprimeranno ostechnix1.txt e ostechnix2.txt e li salveranno in un file chiamato output.txt.gz .
Puoi visualizzare il contenuto di entrambi i file (ostechnix1.txt e ostechnix2.txt) senza estrarli utilizzando uno dei seguenti comandi:
$ gunzip -c output.txt.gz
$ gunzip -c output.txt
$ zcat output.txt.gz
$ zcat output.txt
Per maggiori dettagli, fare riferimento alle pagine man.
$ man gzip
2. Comprimi e decomprimi i file usando il programma bzip2
Il bzip2 è molto simile al programma gzip, ma utilizza un algoritmo di compressione diverso chiamato algoritmo di compressione del testo per l'ordinamento dei blocchi Burrows-Wheeler e la codifica Huffman. I file compressi utilizzando bzip2 termineranno con .bz2 estensione.
Come ho detto, l'uso di bzip2 è quasi lo stesso di gzip. Sostituisci semplicemente gzip negli esempi precedenti con bzip2 , comprimere con bunzip2 , zcat con bzcat e così via.
Per comprimere un file utilizzando bzip2, sostituendolo con una versione compressa, eseguire:
$ bzip2 ostechnix.txt
Se non vuoi sostituire il file originale, usa -c contrassegnare e scrivere l'output in un nuovo file.
$ bzip2 -c ostechnix.txt > output.txt.bz2
Per decomprimere un file compresso:
$ bzip2 -d ostechnix.txt.bz2
Oppure,
$ bunzip2 ostechnix.txt.bz2
Per visualizzare il contenuto di un file compresso senza decomprimerlo:
$ bunzip2 -c ostechnix.txt.bz2
Oppure,
$ bzcat ostechnix.txt.bz2
Per maggiori dettagli, fare riferimento alle pagine man.
$ man bzip2
Lettura consigliata:
- Pigz - Comprimi e decomprimi file in parallelo in Linux
Riepilogo
In questo tutorial, abbiamo imparato cosa sono i programmi gzip e bzip2 e come usarli per comprimere e decomprimere file con alcuni esempi in GNU/Linux. Nella prossima guida impareremo come archiviare file e directory in Linux .