Introduzione
ZIP è il formato di file di archivio più utilizzato che supporta la compressione dei dati senza perdita di dati. Un file ZIP è un contenitore di dati contenente uno o più file o directory compressi.
In questo tutorial, spiegheremo come decomprimere (estrarre) i file nei sistemi Linux attraverso la riga di comando usando il comando unzip
.
Che cos'è Unzip?
unzip
è un'utilità che ti aiuta a elencare, testare ed estrarre archivi ZIP compressi.
unzip
non è installato di default nella maggior parte delle distribuzioni Linux, ma puoi installarlo facilmente usando il gestore pacchetti della tua distribuzione.
Installare unzip su Ubuntu e Debian
sudo apt install unzip
Installare unzip su CentOS e Fedora
sudo yum install unzip
Come decomprimere un file ZIP
Nella sua forma più semplice se usato senza alcuna opzione, il comando unzip
estrarrà tutti i file dall'archivio ZIP specificato nella directory corrente.
unzip filename.zip
Per estrarre un archivio ZIP in una directory specifica, l'utente deve disporre delle autorizzazioni di scrittura per quella directory.
I file ZIP non supportano le informazioni sulla proprietà in stile Linux e tutti i file estratti saranno di proprietà dell'utente che esegue il comando.
Ad esempio, supponiamo che tu abbia scaricato il file ZIP di installazione di Wordpress. Per decomprimere questo file nella directory corrente, è sufficiente eseguire il comando seguente:
unzip latest.zip
Come nascondere l'output dal comando unzip
Per impostazione predefinita, il comando unzip
stampa i nomi di tutti i file che sta estraendo e un riepilogo al termine dell'estrazione.
Utilizzare l'opzione -q
per nascondere la stampa di questi messaggi.
unzip -q filename.zip
Come decomprimere un file ZIP in una directory diversa
Per decomprimere un file ZIP in una directory diversa da quella corrente, utilizzare l'opzione -d
:
unzip filename.zip -d /path/to/directory
Ad esempio, per decomprimere l'archivio di WordPress latest.zip
nella directory/var/www/
, utilizzare il comando seguente:
sudo unzip latest.zip -d /var/www
Nel comando sopra stiamo usando sudo
perché nella maggior parte dei casi l'utente a cui abbiamo effettuato l'accesso in quanto non dispone delle autorizzazioni di scrittura per la directory /var/www
. Quando i file ZIP vengono decompressi utilizzando sudo, i file e le directory estratti saranno di proprietà dell'utente root.
Come decomprimere un file ZIP protetto da password
Per decomprimere un file protetto da password, utilizzare l'opzione -P
seguita dalla password:
unzip -P PasswOrd filename.zip
Come escludere i file quando si decomprime un file ZIP
Se si desidera estrarre tutti i file da un archivio ZIP tranne uno, utilizzare l'opzione -x
:
unzip filename.zip -x file-to-exclude
Nel seguente esempio stiamo estraendo tutti i file e le directory dall'archivio ZIP tranne la directory .git
:
unzip filename.zip -x "*.git/*"
Come sovrascrivere i file esistenti quando si utilizza Unzip
Diciamo che hai già decompresso un file ZIP e stai eseguendo di nuovo lo stesso comando:
unzip latest.zip
Per impostazione predefinita, unzip
ti chiederà se desideri sovrascrivere solo il file corrente, sovrascrivere tutti i file, saltare l'estrazione del file corrente, saltare l'estrazione di tutti i file o rinominare il file corrente.
Archive: latest.zip
replace wordpress/xmlrpc.php? [y]es, [n]o, [A]ll, [N]one, [r]ename:
Se si desidera sovrascrivere i file esistenti senza chiedere conferma, utilizzare l'opzione -o
:
unzip -o filename.zip
Utilizzare questa opzione con cautela. I file verranno sovrascritti e se si apportano modifiche ai file, le modifiche andranno perse.
Come decomprimere un file ZIP senza sovrascrivere i file esistenti
Supponiamo che tu abbia già decompresso un file ZIP e apportato modifiche ad alcuni file ma che tu abbia eliminato per errore alcuni file. Si desidera mantenere le modifiche e ripristinare i file eliminati dall'archivio ZIP.
In questo caso, useresti l'opzione -n
che forza unzip
a saltare l'estrazione di un file già esistente.
unzip -n filename.zip
Come decomprimere più file ZIP
Se nella directory di lavoro corrente sono presenti più file ZIP, è possibile decomprimere tutti i file utilizzando un solo comando:
unzip '*.zip'
Nota le virgolette singole attorno al *.zip
. Se hai dimenticato di citare l'argomento, la shell espande il carattere jolly e otterrai un errore.
Come elencare il contenuto di un file zip
Per elencare il contenuto di un file ZIP, utilizzare l'opzione -l
:
unzip -l filename.zip
Nell'esempio seguente, stiamo elencando tutti i file di installazione di WordPress:
unzip -l latest.zip
L'output sarà simile al seguente:
Archive: latest.zip
Length Date Time Name
--------- ---------- ----- ----
0 2018-08-02 22:39 wordpress/
3065 2016-08-31 18:31 wordpress/xmlrpc.php
364 2015-12-19 12:20 wordpress/wp-blog-header.php
7415 2018-03-18 17:13 wordpress/readme.html
...
...
21323 2018-03-09 01:15 wordpress/wp-admin/themes.php
8353 2017-09-10 18:20 wordpress/wp-admin/options-reading.php
4620 2017-10-24 00:12 wordpress/wp-trackback.php
1889 2018-05-03 00:11 wordpress/wp-comments-post.php
--------- -------
27271400 1648 files
Conclusione
Abbiamo parlato di come decomprimere i file in Linux, dalla riga di comando.