Zip e tar sono popolari utility da riga di comando per comprimere e archiviare più directory e file in un unico file di archivio in un sistema Linux. Per impostazione predefinita, il comando tar non comprime i file ma raccoglie solo i file e i relativi metadati per generare un singolo file tar, ma possiamo archiviare i file utilizzando gzip/bzip2. Mentre, zip fornisce una compressione dei dati senza perdita di dati, che è una classe di algoritmi di compressione dei dati che consente di ricostruire i dati compressi nella loro forma originale. gzip e zip utilizzano l'algoritmo DEFLATE per comprimere i file mentre bzip2 utilizza l'algoritmo Burrows-Wheeler che produce file altamente compressi ma consuma più tempo rispetto a gzip e zip.
Installazione
Per impostazione predefinita, il comando tar è integrato con il sistema Linux, quindi iniziamo con l'installazione di zip e unzip. Il comando unzip non verrà installato durante l'installazione del comando zip, quindi è necessario installarlo separatamente.
Prima di continuare con l'installazione, non dimenticare di aggiornare le informazioni sul pacchetto.
$ sudo apt-get update
Installazione di Zip.
$ sudo apt-get install zip
Installazione decomprimi
$ sudo apt-get install unzip
Per mostrare il seguente esempio, ho usato Ubuntu 20.4 e ho i seguenti file nella home directory.
Alcuni esempi di comandi Tar
Prima di continuare con l'esempio devi conoscere la sintassi del tar quindi la sintassi è così:
$ tar -c [option] [archive name] [file] | [directory] |
Le seguenti opzioni sono le opzioni principali e obbligatorie che portano il comando a quale attività deve essere eseguita. Le seguenti opzioni possono essere utilizzate una volta nel comando, senza di essa il comando non verrà eseguito.
-c :Per generare un file di archivio.
-r :per aggiungere più file al file di archivio esistente.
-t :Visualizza tutti i file all'interno dell'archivio.
-x: Per estrarre i file di archivio.
Compressione di file utilizzando gzip e bzip2
Il comando Tar produce un file compresso utilizzando gzip e bzip2 a cui è possibile accedere fornendo rispettivamente le opzioni -z e -j al comando. Per archiviare e comprimere i file tar dobbiamo eseguire il comando seguente.
$ tar -cvzf compress_sample.tar.gz *.txt
Compressione del file tramite gzip.
$ tar -cvjf compress_sample.tar.bz2 *.txt
Compressione del file utilizzando bz2.
Nell'esempio sopra, l'opzione -c si riferisce alla creazione dell'archivio, l'opzione -v mostra il dettaglio dei file archiviati e -f indica il nome dell'archivio.
Nota:l'opzione -f deve sempre essere prima del nome del file.
Estrazione di file da un file compresso
Per estrarre il file compresso è necessario eseguire:
$ tar -xvf compress_sample.tar.gz
Il comando precedente estrarrà il file nella directory di lavoro corrente, ma se vuoi estrarre i file in una directory diversa puoi farlo usando -C al comando.
$ tar -xvf compress_sample.tar.gz -C Documents/
Estrazione di file in directory diverse usando tar.
Estrazione di file specifici da un file compresso
Possiamo estrarre file specifici dal file compresso per questo dobbiamo specificare il nome del file insieme al nome della directory se si trova all'interno della directory.
$ tar -xvf compress_sample.tar sample.txt student.txt
Estrazione di file specifici usando tar.
Alcuni esempi di comando zip e decomprimi.
La sintassi per zip e unzip è la seguente:
$ zip [option] [archive_name] [Files]
$ unzip [option] [archive_name]
Compressione di file tramite Zip
Zip è il compressore dell'archivio, quindi non è necessario fornire alcun parametro aggiuntivo per comprimere i file. Per la compressione dobbiamo eseguire il comando in questo modo:
$ zip zip_demo.zip *.txt
Comprimi più file
Decompressione del file in una directory diversa
Possiamo decomprimere i file zip nelle diverse directory usando l'opzione -d e specificando la directory nel comando.
$ unzip zip_demo.zip -d Documents/
Decomprimi il file in una directory diversa.
Decompressione di file specifici da file compresso
Per decomprimere un file specifico dall'archivio il comando deve essere eseguito nel modo seguente.
$ unzip zip_demo.zip student.txt sample.txt
Decomprimi file specifici dal file zip.
Conclusione
In questo articolo impariamo come archiviare e comprimere i file usando i comandi tar e zip. Ho incluso l'esempio più comune nell'articolo, spero che questo ti aiuti a comprimere i file.