Il formato 7z, diffuso fra i power user Windows grazie all'eccellente 7-Zip, ha molte caratteristiche che lo rendono interessante, ma l'elevato rapporto di compressione è certamente una delle principali. Proprio questa caratteristica torna molto utile anche in ambiente Linux, quando desideriamo creare un archivio con vecchi file da conservare su DVD oppure per trasferire rapidamente dati dal server remoto al PC di sviluppo. Vediamo allora come creare (comprimere) ed estrarre archivi 7z con Linux
» Leggi anche: MySQL/mysqldump: creare un file distinto/singolo per ogni database con zzmysqldump (script)
Nota: in questo articolo vedremo come comprimere ed espandere (estrarre) file .7z da linea di comando con Linux. Se desideri fare lo stesso, ma con i classici file .zip, consulta invece quest'altra guida:
La procedura è stata testata con Ubuntu 17.04 e CentOS 7.3, ma è presumibile che continui a rimanere la stessa negli anni a venire.
Per chi ha fretta
Se già sei esperto di Linux e cerchi solo un "reminder" per la sintassi, eccoti servito:
-
visualizzazione:
7za l "/percorso/completo/miofile.7z"
-
estrazione:
7za x "/percorso/completo/miofile.7z" -o"/percorso/file/estratti/"
-
creazione archivio 7z:
7za a -t7z -mx=9 -mfb=256 -md=256m -ms=on -sdel "/percorso/completo/miofile.7z" .
Nel resto dell'articolo ne approfondiremo l'uso e spiegheremo il significato dei vari argomenti.
Passo 1: Aprire il terminale
Se state lavorando via SSH oppure con una edizione spiccatamente "server" (come Ubuntu Server), siete già davanti alla linea di comando, quindi andate oltre.
Se però state impiegando l'edizione "regolare" per PC, cliccate sul pulsante con i 3x3 punti in basso a sinistra e cercate terminale
per lanciare rapidamente l'omonima applicazione
» Leggi anche: Come aprire il terminale di Ubuntu
Passo 2: Installare 7-Zip su Linux
Procediamo ora ad installare 7-Zip per Linux:
-
Ubuntu:
apt-get install p7zip-full -y
-
CentOS:
yum install epel-release -y && yum install p7zip -y
Da notare che il comando per CentOS abilita il repository EPEL. Per maggiori informazioni:
» Leggi: Guida: abilitare il repository "Extra Packages for Enterprise Linux" (EPEL) su CentOS 7
Passo 3: Scaricare il file da estrarre
Se state leggendo questo articolo perché desiderate estrarre un file .7z da linea di comando su Linux dovete innanzitutto scaricare il .7z in questione! Allo scopo, consultate questo articolo per la guida al download dei file tramite linea di comando:
» Leggi: Come scaricare file da linea di comando: guida a curl e wget per Linux Ubuntu/CentOS
estrarre tutti i file da un .7z tramite linea di comando
Per "estrarre" tutti i file di un .7z da linea di comando basta impartire qualcosa di simile a:
7za x "/percorso/completo/miofile.7z" -o"/percorso/file/estratti/"
Dove:
-
7za
: è il nome del comando -
x
: indica il comando di estrazione -
"/percorso/completo/miofile.7z"
: percorso del file .7z che desideriamo scompattare -
-o"/percorso/file/estratti/"
: percorso nel quale salvare i file estratti dall'archivio. Notate che non c'è alcuno spazio fra-o
ed il percorso
Da notare che l'argomento -o
può essere omesso, ma questo estrae tutti i file nella directory corrente (non in quella nella quale si trova il .7z). Per evitare fraintendimenti e ritrovarsi con i file estratti in un percorso differente da quello atteso, è dunque sempre opportuno esplicitarlo.
Il comando di estrazione non sovrascrive eventuali file già presenti nella destinazione, ma chiede esplicita conferma prima di procedere
Altri parametri che risulta utile conoscere sono:
-
-pPasswordDel7zip
: se l'archivio è protetto da password, specifichiamola tramite l'argomento-p
per poter procedere con l'estrazione. Se viene omesso e l'archivio è effettivamente protetto da password, verrà chiesto di fornirla sul momento -
e
al posto dix
(primo argomento): scarta l'alberatura di cartelle presenti nell'archivio ed estrae tutti i file nella cartella di destinazione
La lista completa degli argomenti è disponibile impartendo man 7za
oppure via web.
Visualizzare il contenuto dell'archivio senza scompattare
In alcune circostanze vorremo ispezionare il contenuto dell'archivio .7z senza concretamente estrarre i file. Allo scopo, si usa l'argomento l
. Il comando completo sarà dunque:
7za l "/percorso/completo/miofile.7z"
Le righe il cui valore Name
finisce con la barra (/
) sono cartelle, mentre gli altri sono file
estrarre solo alcuni file
Non è necessario scompattare l'intero archivio per recuperare solo pochi file o cartelle: possiamo infatti specificare sulla linea di comando un elenco dei file estrarre.
Per prima cosa, usiamo l'argomento l
, come indicato al Passo precedente, per visualizzare la lista dei file presenti nell'archivio e scoprirne i percorsi.
Procediamo poi ad indicare quali file o cartelle estrarre, fornendo i rispettivi percorsi sulla linea di comando e chiudendo tutto con -r
. Ad esempio:
7za x "/percorso/completo/miofile.7z" -o"/percorso/file/estratti/" "nomecartella/" "cartella2/file3.xls" "dir1/dir2/file.ppt -r
Come unica accortezza, ricordate che, per estrarre intere cartelle, dovete esplicitare la barra (/
) dopo il nome
Creare archivi 7z con Linux
Se invece desiderate creare un archivio 7z da linea di comando, dovete innanzitutto entrare nella cartella che contiene i file da 7-zippare:
cd "/percorso/cartella/file_da_7-zippare/"
A questo punto potete lanciare qualcosa di simile a:
7za a -t7z -mx=9 -mfb=256 -md=256m -ms=on -sdel "/percorso/completo/miofile.7z" .
Dove:
-
7za
: è il nome del comando - a: indica la creazione di un nuovo archivio
-
-t7z
: genera un archivio in formato 7z -
-mx=9
: specifica di usare la massima compressione prevista dal formato 7z -
-mfb=256
: indica all'algoritmo LZMA di usare 256 fast byte, migliorando il livello di compressione -
-md=256m
: usa un dizionario da 256 MB, migliorando il livello di compressione -
-ms=on
: genera un archivio solido, migliorando il livello di compressione -
-sdel
: elimina i file originali dopo aver creato l'archivio -
"/percorso/completo/miofile.7z"
: percorso e nome del file .7z da creare -
.
: indica al comando di aggiungere all'archivio il contenuto della directory corrente
Anche il comando di compressione prevede una lunga lista di altri parametri opzionali. Fra i più significativi, ricordiamo:
-
-pPasswordDel7zip
: per proteggere il nuovo archivio con password, specifichiamola tramite l'argomento-p
La lista completa degli argomenti è disponibile impartendo man z7a
oppure via web.