Zip e Unzip

La compressione e la decompressione dei file all’interno di un archivio .zip, avviene da terminale attraverso i comandi zip e unzip . La sintassi non è complicata ed è strutturata nel seguente modo:

$ zip  [opzioni] archivio.zip  [opzioni] file1 file2 file3 ....
-------------------------------------------------------
$ unzip [opzioni] archivio.zip

Attraverso un emulatore di terminale è necessario inserire il percorso dell’archivio  .zip, già esistente o da creare, quindi inserire in successione i nomi dei file da aggiungere o il loro percorso nel caso non siano nella posizione (directory) in cui ci troviamo.

Zippare un gruppo di file

Se dobbiamo zippare tutti i file contenuti in una determinata directory procederemo nel seguente modo:

$ zip  /percorso/archivio.zip  /percorso/dir/ *.*

Possiamo, altresì, entrare nella directory dove sono contenuti i file da zippare e lanciare il seguente comando:

$ cd /percorso/dir/
--------------------------------------
:/dir$ zip /percorso/archivio.zip *.*

Per zippare un gruppo di file e di sottocartelle ( vuote o contenenti altri file ) contenuti in una directory sarà necessario spostarci nella stessa e utilizzare le opzioni  -r  e  .

$ cd /percorso/dir/
---------------------------------------
:/dir$ zip -r /percorso/archivio.zip .

In questo caso, l’opzione .  indicherà di aggiungere tutto il contenuto della directory in cui ci troviamo, mentre -r di comprimere ricorsivamente tutte le sottocartelle e i files presenti.

Zippare un singolo file o una selezione di file

Per poter aggiungere un singolo file ad un archivio, esistente o meno, possiamo spostarci nella directory contenente il file d’aggiungere, indicare il percorso dell’archivio, quindi il nome stesso del file; oppure, possiamo indicare da qualunque posizione il percorso dell’archivio .zip, quindi il percorso del file da aggiungere:

$ cd /percorso/dir/
--------------------------------------------
:/dir$ zip /percorso/archivio.zip  file.txt
$ zip /percorso/archivio.zip /percorso/dir/file.txt

Se si desidera, invece,  inserire nell’archivio  un file insieme al suo percorso bisognerà indicare l’intero percorso e utilizzare l’opzione di ricorsività -r :

$ zip -r /percorso/archivio.zip /percorso/dir/file.txt

In questo caso, il file  file.txt  verrà inserito nell’archivio nel percorso  percorso/dir/file.txt , anziché al primo livello dell’archivio stesso.  Altrettanto vale per l’aggiunta di cartelle che contengono file:

$ zip -r /percorso/archivio.zip /percorso/dir/dir1

In questo caso la directory  “dir1 , contenuta in  dir “, verrà aggiunta all’archivio insieme all’intero percorso  /percorso/dir/dir1 , anziché al primo livello dell’archivio stesso.

Se si vuole aggiungere un’intera cartella, insieme ai file che essa contiene, al primo livello dell’archivio, dobbiamo spostarci all’interno della directory che la contiene, e utilizzare ancora l’opzione ricorsiva  -r .

$ cd /percorso/dir/
-------------------------------------------
:/dir$ zip  -r /percorso/archivio.zip dir1

In questo caso, la cartella “dir1“,  verrà posta al primo livello dell’archivio stesso. Per aggiungere solo la directory (vuota), basterà non utilizzare  -r

Se si vuole, invece, aggiungere più di un file o più di una directory bisognerà procedere come sopra, inserendo in successione i nomi dei files e delle directory, una volta spostati nella directory che li contiene:

$ cd /percorso/dir
--------------------------------------------------------------------------
:/dir$ zip /percorso/archivio.zip file1.txt file2.txt file3.txt  etc. ...
--------------------------------------------------------------------------
:/dir$ zip -r  /percorso/archivio/.zip dir1 dir2 dir3 etc. ...

Per aggiungere un insieme di file e di directory selezionati bisognerà procedere allo stesso modo utilizzando l’opzione ricorsiva  -r :

$ cd /percorso/dir
-------------------------------------------------------------------------------
:/dir$ zip -r  /percorso/archivio/.zip  file1.txt file2.txt dir1 dir2  etc. ...

In tutti questi esempi, è possibile aggiungere l’opzione  -9 , che consente di zippare alla massima compressione.

Esempio:

$ zip -9 /percorso/archivio.zip  /percorso/dir/ *.*
---------------------------------------------------------
$ zip -9 /percorso/archivio.zip /percorso/dir/file.txt
---------------------------------------------------------
:/dir$ zip -r -9 /percorso/archivio.zip .
---------------------------------------------------------
$ zip -r -9 /percorso/archivio.zip /percorso/dir/file.txt

etc. …

Decomprimere un archivio .zip

Al fine di estrarre i file di un archivio è necessario utilizzare il seguente comando

$ unzip "/percorso/archivio.zip"   -d  "/percorso/cartella_destinazione"

In alternativa è possibile spostarsi nella directory in cui si trova l’archivio e lanciare il seguente comando

$ cd /percorso/cartella/
-------------------------------
/cartella$ unzip  archivio.zip

Con questo semplice comando i file verranno estratti nella directory in cui ci troviamo. Se si vuole specificare un altro percorso,  ddovremo specificarlo nel seguente modo:

$ cd /percorso/cartella/
----------------------------------------------------------------------
/cartella$ unzip  archivio.zip  -d "/percorso/cartella_destinazione/"

Infine, per visualizzare i file contenuti in un archivio, si può utilizzare il seguente comando:

$ unzip -l "/percorso/archivio.zip/"

oppure ci spostiamo nella cartella in cui è contenuto l’archivio e digitiamo:

$cd /percorso/cartella/
---------------------------------
/cartella$ unzip -l archivio.zip

Estrarre solamente alcuni file da un archivio .zip

$ unzip "/percorso/completo/archivio.zip" "file1" "cartella1/" "cartella1/cartella2/file4 " -d  "/percorso/cartella_destinazione/"

in questo caso è necessario inserire la posizione dell’archivio, quindi l’elenco dei percorsi dei file e delle cartelle da estrarre all’interno dell’archivio stesso, quindi il percorso di destinazione preceduto dall’argomento  -d.

Ti potrebbe interessare anche...