Opzioni di compressione dei file Linux e confronto

Opzioni di compressione dei file Linux e confronto
La compressione, in generale, è un metodo utile che è essenzialmente codifica informazioni utilizzando meno dati di quello originale. Nel caso di Linux, ci sono varie opzioni di compressione, ognuna con i suoi benefici.

Una distro Linux generica offre l'accesso a una manciata di meccanismi di compressione davvero utili e semplici. Questo articolo si concentrerà solo su di loro.

Tipi di compressione

La compressione è codifica e rappresenta informazioni utilizzando meno bit di quanto non fosse originariamente. Nel caso della compressione del file, un metodo di compressione utilizza il proprio algoritmo e il calcolo matematico per generare un output generalmente inferiore alla dimensione del file originale. A causa di come funziona la diversa compressione e della natura casuale dei file, il chilometraggio può variare notevolmente.

Esistono 2 tipi di compressione.

  • Compressione perdita: Questo è un tipo rischioso di compressione che non garantisce l'integrità dei dati. Essenzialmente, una volta compresso, esiste il rischio che il file originale non possa essere ricostruito usando l'archivio compresso.
    Un solido esempio di questo tipo di compressione è il noto formato MP3. Quando un mp3 viene creato dal file audio originale, è significativamente più piccolo del file di musica di origine originale. Ciò provoca perdita di una certa qualità audio.
  • Compressione senza perdita: Questo è il tipo di compressione più utilizzato. Utilizzando un metodo di compressione "senza perdita", il file originale può essere ricostruito dal file compresso. I metodi di compressione che discuterò in questo articolo sono tutti metodi di compressione senza perdita.

Compressione Linux

La maggior parte dei metodi di compressione è disponibile dallo strumento catrame. Per quanto riguarda la compressione "zip", useremo il cerniera lampo attrezzo. Supponendo che il tuo sistema abbia già questi strumenti installati, iniziamo.

Inizialmente, abbiamo bisogno di un file di test. Esegui il comando seguente per crearne uno.

$ Base64 /Dev /Urandom | head -c 20000000> file.TXT

Creerà un file di testo con dimensioni di 20 MB.

Ora, creiamo 10 copie del file. Insieme, sono 200 MB.

Zip per compressione

Zip è abbastanza comune. Per la creazione di un file zip, lo strumento Zip richiede la seguente struttura di comando.

$ zip .cerniera lampo

Per comprimere tutti i file nella directory di prova in un singolo file zip, eseguire questo comando.

$ zip test.cerniera lampo *

La dimensione dell'input era di 200 MB. Dopo la compressione, ora sono 152 MB!

Per impostazione predefinita, lo strumento ZIP applicherà la compressione Deblate. Tuttavia, è anche in grado di usare la compressione BZIP2. Non solo, puoi anche creare file Zip protetti da password! Ulteriori informazioni su Zip.

Tar per compressione su Linux

Tar non è un metodo di compressione. Invece, è più spesso usato per creare archivi. Tuttavia, può implementare una serie di metodi di compressione popolari all'archivio.

Per gestire l'archivio Tar (noto anche come "Tarball"), c'è lo strumento TAR. Ulteriori informazioni su Tar. In generale, lo strumento TAR utilizza la seguente struttura di comando.

$ TAR

Per aggiungere i file di test in un singolo archivio TAR, eseguire il comando seguente.

Test $ TAR -CVF.catrame *

Qui, la dimensione del file rimane la stessa.

Gzip per compressione su linux

GNU Zip o Gzip è un altro metodo di compressione popolare che, secondo me, è migliore della zip tradizionale a causa della sua migliore compressione. È un prodotto open source creato da Mark Adler e Jean-Loup Gailly che era originariamente destinato a sostituire l'Unix comprimere utilità.

Per la gestione degli archivi GZIP, sono disponibili 2 strumenti: TAR e GZIP. Diamo un'occhiata a entrambi.

Innanzitutto, lo strumento GZIP. Ecco come appare la struttura del comando gzip.

$ gzip

Ad esempio, il seguente comando sostituirà Test1.txt con test1.TXT.GZ File compresso.

$ gzip -v test1.TXT

Se si desidera comprimere un'intera directory usando GZIP, esegui questo comando. Qui, la flag "-r" è per la compressione "ricorsiva". GZIP passerà attraverso tutte le cartelle e comprimerà i singoli file in ciascuno di essi.

$ gzip -r

GZIP supporta vari valore di resistenza alla compressione, a partire da 1 (minima compressione, più veloce) a 9 (migliore compressione, più lenta).

$ gzip -v -9

Per un migliore controllo sull'output e sulla facilità d'uso, TAR è migliore per l'attività. Esegui il seguente comando.

Test $ tar -cvzf.catrame.GZ *

Il risultato è simile a zip usando Deflate, risultando in 152 MB dopo la compressione.

BZIP2 per compressione su Linux

BZIP2 è uno strumento gratuito e open source che utilizza l'algoritmo di Burrows-Wheeler per la compressione. Introdotto per la prima volta nel 1996, BZIP2 è pesantemente usato come alternativa alla compressione GZIP.

Come GZIP, ci sono 2 strumenti per lavorare con BZIP2: TAR e BZIP2.

Lo strumento BZIP2 funziona in modo simile allo strumento GZIP. Può funzionare solo con un solo file alla volta. Ecco la struttura di comando.

$ bzip2

Comprimiamo il test1.file txt. Qui, il flag "-v" è per la modalità verbosa.

$ bzip2 -v test1.TXT

Simile a GZIP, BZIP2 supporta anche un diverso livello di compressione, a partire da 1 (impostazione predefinita, meno utilizzo della memoria) a 9 (compressione estrema, elevato utilizzo della memoria).

$ bzip2 -v -9

Il modo migliore di usare la compressione BZIP2 è usare il catrame. Usa il seguente comando.

Test $ tar -cvjf.catrame.BZ2 *

La compressione è leggermente migliorata rispetto ai precedenti. Ora, la dimensione del file si è ridotta a 151.7 mb.

XZ per compressione su Linux

È un nuovo arrivato relativo nel campo della compressione. Rilasciato per la prima volta nel 2009, da allora ha visto una costante crescita dell'uso.

Lo strumento di compressione XZ utilizza l'algoritmo LZMA2 noto per un maggiore rapporto di compressione rispetto a GZIP e BZIP2, rendendolo un'ottima scelta quando si desidera risparmiare la massima quantità di spazio su disco. Tuttavia, ciò comporta il costo di requisiti di memoria più elevati e consumo di tempo.

Il file creato dallo strumento di compressione XZ ha l'estensione .xz. Per comprimere un singolo file, è possibile chiamare direttamente lo strumento XZ.

$ xz

Ad esempio, eseguire il comando seguente per comprimere il test1.file txt.

$ xz -v test1.TXT

Simile ad altri metodi di compressione menzionati, XZ supporta anche varie gamma di resistenza alla compressione, a partire da 1 (compressione più bassa, più veloce) a 9 (migliore compressione, più lenta). Se non hai alcun rispetto per il tempo e vuoi solo risparmiare spazio, allora fai l'estrema.

$ xz -v -9

Per creare un file XZ compresso da tutti i file di test, eseguire questo comando.

Test $ tar -cvjf.catrame.xz *

Qui, la dimensione del file di output è 153.7 mb.

Estrazione di archivi compressi

Estrarre gli archivi che abbiamo creato è più facile che crearli. Per estrarre un file zip, utilizzare la seguente struttura di comando.

$ Unzip .zip -d

Per estrarre l'archivio zip che abbiamo creato, esegui questo comando. Questo estraggerà tutti i contenuti nella stessa directory.

$ Unzip Test.cerniera lampo

Per estrarre catrame, catrame.Gz, Tar.BZ2 e TAR.XZ Archives, dobbiamo usare il catrame attrezzo. Il seguente comando TAR è applicabile per estrarre tutti loro.

$ tar -xvf

Ad esempio, estraiamo tutti i file dall'archivio compresso BZ2.

Test $ TAR -XVF.catrame.BZ2

Decomprimere un gzip (non catrame.gz) file, eseguire questo comando.

$ gzip -d

Allo stesso modo, il seguente comando decomprimerà l'archivio BZIP2.

$ bzip2 -d

La stessa struttura di comando si applica per l'archivio XZ.

$ xz -d

Pensieri finali

Spero che ora tu abbia abbastanza conoscenza per gestire le attività di compressione in diverse circostanze. A seconda del requisito specifico, tutti i metodi di compressione offrono caratteristiche molto interessanti.

Una cosa importante da notare è che il risultato della compressione non sarà sempre lo stesso. Con input di dati diversi, l'output sarà diverso. Ad esempio, in alcuni casi, XZ può offrire un risultato folle di compressione mentre in questo esempio non lo ha fatto. Lo stesso vale per altri metodi.

Per imparare di più in modo approfondito su questi strumenti, dai un'occhiata alla loro rispettiva pagina da uomo.

$ Man Zip