Per risolvere questo problema, gli sviluppatori hanno sviluppato algoritmi e strumenti di compressione in grado di comprimere i dati in tempo reale, riducendo le dimensioni e la potenza di elaborazione richiesta. Uno di questi strumenti è Zstandard, comunemente noto come Zstd.
Zstd è un algoritmo di compressione gratuito, open source e in tempo reale sviluppato da Yann Collect, un dipendente di Facebook. Zstd è molto veloce e offre rapporti di compressione eccezionali. È un algoritmo di compressione senza perdita di dati scritto in C ma ha implementazioni API in altri linguaggi di programmazione popolari come Python, Java, C#, JavaScript e molti altri. Fornisce anche funzioni di compressione e decompressione in memoria.
Per verificare se Zstd supporta la lingua desiderata, controlla la risorsa fornita di seguito:
https://facebook.github.io/zstd/
Se desideri esaminare le informazioni di benchmarking su Zstd, utilizza il collegamento seguente:
https://github.com/facebook/zstd
Questo tutorial ti mostrerà come compilare e installare lo strumento Zstd in Linux, quindi usarlo per eseguire la compressione e la decompressione dei dati.
Come installare Zstd
Per usare Zstd, dobbiamo installarlo compilando dai sorgenti. A seconda del sistema in esecuzione e della configurazione, potrebbe essere necessario installare dipendenze e strumenti per eseguire correttamente la compilazione.
Inizia aggiornando il tuo sistema e installando GNU make usando il comando:
sudo apt-get updatesudo apt-get upgrade
sudo apt-get -y install build-essential wget tar
Una volta installati tutti gli strumenti, possiamo scaricare i file sorgente e compilarli. Inizia navigando dove hai letto, scritto ed eseguito le autorizzazioni. ~/Desktop
cd ~/DesktopQuindi, usa wget per scaricare i file nella directory.
wget https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.catrame.gzOra annulla l'archiviazione del file di download e naviga nella directory usando i comandi come:
tar xvf zstd-1.4.9.catrame.gzcd zstd-1.4.9
I passaggi finali sono installare Zstd utilizzando make e make install all'interno della directory Zstd.
sudo makesudo make install
Una volta che la compilazione e l'installazione sono state completate con successo, puoi iniziare a utilizzare Zstd sul tuo sistema per comprimere e decomprimere i file.
Come usare Zstd
Zstd non differisce affatto dai metodi di compressione e decompressione popolari. Sebbene la tecnologia e l'implementazione sottostanti siano diverse da altri strumenti, la compressione di un file con Zstd è simile alla sintassi tar e gzip.
Come comprimere un file
Per comprimere un file, chiama il comando zstd seguito dal flag -z, che dice a zstd di eseguire la compressione e, infine, il nome del file da comprimere.
Ad esempio, il comando seguente comprime il file di backup del sistema in a .file zst.
$ sudo zstd -z system-backupL'output del comando come mostrato di seguito:
backup del sistema: 100.00% (1821109 => 1821164 byte, backup del sistema.zst)$ ls backup di sistema
Dovresti vedere un file con .zst estensione come:
backup del sistema.zstUna volta eseguito il comando, il file viene compresso e crea un nome file .zst che puoi decomprimere.
Comprimi e rimuovi il file sorgente
Come puoi vedere dal comando sopra, il file sorgente non viene rimosso per impostazione predefinita al momento della compressione. È possibile specificare di rimuovere i file di origine utilizzando il flag -rm:
$ sudo zstd -z --rm system-backupbackup del sistema: 100.00% (1821109 => 1821164 byte, backup del sistema.zst)
$ ls
backup del sistema.zst
Specificando il flag -rm si rimuove automaticamente il file sorgente.
Ottieni informazioni sul file
Per visualizzare le informazioni correlate sul file compresso Zstd, puoi usare il flag -l seguito dal nome del file. Le informazioni visualizzate includono la dimensione del file, il rapporto di compressione e il checksum del file
$ zstd -lv system-backup.zst*** interfaccia a riga di comando zstd 64 bit v1.4.9, di Yann Collet ***
backup del sistema.zst # Zstandard Cornici: 1
Dimensione della finestra: 1.74 MB (1821109 B)
Dimensione compressa: 1.74 MB (1821164 B)
Dimensione decompressa: 1.74 MB (1821109 B)
Rapporto: 1.0000
Controllare: XXH64
Specificare il livello di compressione
Per specificare esplicitamente il livello di compressione, utilizzare il - dove il livello è un valore compreso tra 1 e 19. Il livello di compressione predefinito è 3. Puoi anche sbloccare livelli di compressione più elevati, i.e., livello 20 - 22.
NOTA: Maggiore è il livello di compressione, maggiore è l'utilizzo della memoria.
Ad esempio, per comprimere un file con un livello di compressione di 10, utilizzare il comando:
zstd -z -10 --rm backup del sistemaSpecifica la velocità di compressione.
Zstd permette anche di impostare la velocità di compressione che va da 1 - a. La velocità di compressione è inversamente proporzionale al rapporto di compressione. La velocità di compressione predefinita è 1 e maggiore è il valore, maggiore è la velocità di compressione.
Ad esempio, per utilizzare la velocità di compressione massima, utilizzare il comando:
sudo zstd -z --fast=10 backup del sistemaSpecifica il formato di compressione
Puoi anche specificare il formato di compressione da utilizzare se non ti piace la compressione zst predefinita. I formati includono zstd, gzip, xz, lzma e lz4.
Usa il flag -format e specifica il formato come:
zstd -z --format=gzip backup di sistemaComprimi l'elenco dei file
Supponiamo di avere un elenco di file che desideri comprimere tutti in una volta. Zstd ti consente di passare un file contenente un elenco di file e di comprimerli in modo ricorsivo.
Ad esempio, un elenco di file.txt contenente i file
/home/utente/mysql-backup/backup/config
/home/Desktop/media
/sync/2021/utenti
Una volta salvato il file, puoi passare l'elenco a Zstd con tutte le altre opzioni da eseguire sui file.
sudo zstd -z -v --rm --elenco file.TXTQuesto comando comprimerà tutti i file specificati nel file di testo e li rimuoverà al completamento.
Decomprimere un file
Per decomprimere un file, puoi usare il flag -d con il comando zstd o semplicemente usare il comando unzstd per decomprimere.
Per esempio:
sudo unzstd system-backup.zstsudo zstd -d system-backup.zst
Verifica l'integrità del file
Per testare l'integrità di un file compresso zst, usa il flag -t come mostrato nel comando seguente:
sudo zstd -t system-backup.zstConclusione
Come possiamo vedere dagli esempi, Zstd è un potente algoritmo di compressione con numerosi casi d'uso. Per saperne di più su come funziona e sulla sua implementazione, controlla la pagina man e sperimenta.
Grazie per aver letto.