Come Usare il Comando Zip in Linux per Comprimere File e Cartelle

Il comando zip in Linux è probabilmente il modo più semplice e intuitivo per lavorare con i file ZIP dalla riga di comando. E non solo, il formato di file ZIP è universale: quasi ogni sistema operativo ha un programma nativo che può lavorarci. Ecco tutti i modi in cui puoi usare questo comando in qualsiasi riga di comando Linux.
Indice
- Come Installare Zip in Linux
- Comando Zip in Linux: Sintassi e Opzioni
- Come Comprimere un File in Linux Usando il Comando Zip
- Come Comprimere una Cartella in Linux Usando il Comando Zip
- Come Decomprimere un File Usando il Comando Zip di Linux
- Come Decomprimere una Cartella di Linux Con Zip
- Domande Frequenti
Come Installare Zip in Linux
L’ultima versione del comando zip di Linux dovrebbe essere disponibile in tutti i principali gestori di pacchetti.
Per Debian/Ubuntu:
sudo apt install zipPer Arch Linux:
sudo pacman -S zipPer Fedora:
sudo dnf install zipPer Gentoo
sudo emerge --ask zipNota: Prima di installare qualsiasi cosa, assicurati di aggiornare prima il tuo gestore di pacchetti per ottenere l’ultima versione del comando zip. Puoi scoprire come fare ciò e altro con il nostro cheatsheet del gestore di pacchetti Linux.
Nota: Con zip installato, il comando unzip sarà ora disponibile.
Comando Zip in Linux: Sintassi e Opzioni
C’è una sintassi di base per il comando zip, e richiede solo due parametri: il nome del file ZIP di output e il nome del file di input.
zip [opzioni] 
Le loro posizioni sono importanti qui. Se li fai al contrario, il computer si chiederà perché stai cercando di creare un “file-to-archive.jpg” da un “zip-file.zip” che non esiste e restituirà un errore.
Per quanto riguarda l’impostazione delle opzioni, dovrai lavorare con i flag. Ci sono 8 flag che avresti normalmente bisogno per un uso normale:
-delimina le voci archiviate selezionate nel file ZIP.-qesegue silenziosamente il compito senza stampare nulla nel terminale.-Ttesta l’integrità del file ZIP.-ecripta il file.-uaggiorna il file ZIP aggiungendo nuovi file all’archivio.-msposta il file nell’archivio.-raggiunge ricorsivamente i file all’interno di una cartella in un file ZIP.-xesclude i file con i nomi selezionati.-iinclude solo i file con i nomi selezionati.
Puoi posizionare i flag dove vuoi, che siano prima dell’output, dopo l’input, tra i due: puoi persino usare più flag sparsi lungo la riga in qualsiasi ordine. Assicurati solo di digitarli dopo aver digitato zip.
L’eccezione sono -x e -i che necessitano di un nuovo input dopo averli usati.
Come Comprimere un File in Linux Usando il Comando Zip
Il modo più semplice per archiviare file con il comando zip è digitare zip seguito dal nome del file ZIP e poi il file che stai cercando di archiviare o comprimere. I flag sono opzionali, quindi puoi farlo in questo modo per comprimere rapidamente qualsiasi file su Linux.
zip archive.zip text_file.txt
Puoi anche aggiungere più file aggiungendo gli altri dopo il primo file che stavi cercando di archiviare. E se qualcuno di questi ha spazi nei loro nomi, puoi racchiuderli tra virgolette.
zip archive.zip "file 1.txt" "file 2.txt" "file 3.txt" "file 4.txt"
Usando il Flag -d
Il flag -d ti consente di eliminare un file archiviato all’interno del file ZIP nello stesso modo in cui lo avresti aggiunto a uno.
zip -d archive.zip remove_me.jpg
Puoi anche usarlo per rimuovere intere cartelle all’interno dell’archivio. Tuttavia, questo non funzionerà per i file al di fuori del file ZIP (quindi non puoi usarlo per eliminare file dopo l’archiviazione).
Usando il Flag -q
Il flag -q serve per assicurarti che zip non restituisca un messaggio quando svolge il suo compito.
zip -q archive.zip text_file.txt
È utile quando stai usando il comando zip con uno script. Ma se lo stai usando da solo, potresti voler evitare di usare il flag -q poiché non saprai se il processo di archiviazione è stato completato con successo senza controllare con il comando dir o ls.
Usando il Flag -T
Alcuni file, alcuni file ZIP possono danneggiarsi durante il download: succede. Puoi usare il flag -T per controllare l’integrità così saprai se è davvero un file danneggiato o stai solo inserendo la password sbagliata.
zip -T archive.zip
Questo è piuttosto importante quando scarichi file di grandi dimensioni come immagini di sistema operativo. Per file come questi, puoi bruciarli con successo in una USB live e finire con errori una volta che esegui il file immagine sulla tua macchina. Lo stesso vale per video e musica che presentano parti tagliate in posti casuali.
Usando il Flag -u
Se desideri aggiungere un nuovo file a un file ZIP esistente, puoi usare il flag -u.
zip -u archive.zip new_file.txt
Puoi anche aggiungere più file aggiungendoli dopo il primo file, come se stessi usando normalmente il comando zip per creare un nuovo archivio ZIP.
Usando il Flag -e
Se vuoi aggiungere una password, devi usare il flag -e. Questa opzione applica solo la password e la crittografia al file che aggiungi al file ZIP all’interno del suo comando, quindi i file precedenti rimarranno non crittografati se usi questo con il flag -u.
zip -e archive.zip text_file.txt
La cosa fantastica dei file ZIP è che il processo di creazione della password aggiunge anche uno strato extra di protezione oltre a fornire accesso. La tua password funziona come una firma digitale che viene utilizzata per decrittografare uno strato di crittografia extra aggiunto al file ZIP.
Usando il Flag -m
Infine, il flag -m elimina il file originale dopo che è stato archiviato nel file ZIP. Pensa a questo come all’automazione di un passaggio extra in modo da non doverlo rimuovere da solo.
zip -m archive.zip text_file.txt
Un aspetto importante da ricordare però: il flag -m elimina i file in un modo tale da rendere impossibile recuperarli senza utilizzare uno strumento di ripristino file. Quindi assicurati di mantenere un backup, o semplicemente rimuovi le cose manualmente usando il comando rm invece.
Come Comprimere una Cartella in Linux Usando il Comando Zip
Se usi il comando zip su una cartella grezza, ti ritroverai con una cartella che non contiene affatto file. Ogni volta che stai cercando di comprimere una cartella, devi usare il flag -r.
Usando il Flag -r
Il flag -r, alias ricorsivo, attraversa ogni contenuto di una cartella e delle sue sottocartelle e archivia ognuno di essi nel file ZIP. Mantiene anche la struttura attuale di ciascuna sottocartella.
zip -r archive.zip my_folder
Questo funziona anche se vuoi archiviare tutto all’interno della cartella corrente. Basta sostituire my_folder con ./ e cambierà il suo obiettivo a tutto ciò che si trova all’interno di quella corrente.
zip -r archive.zip ./
Inoltre, puoi usare questo insieme al flag -u per includere cartelle e i loro contenuti in un file ZIP esistente.
zip -r -u archive.zip another_folder
Usando il Flag -i
Il flag -i ti consente di selezionare un file specifico che desideri includere ed escludere tutto il resto all’interno di una cartella
zip -r archive.zip my_folder -i my_folder/a_subfolder/file1.txt
Utilizzando * asterischi con il flag -i, puoi selezionare file che condividono nomi simili ma potrebbero terminare con qualcosa come un numero. Ad esempio, digitando *.txt farà sì che il comando zip includa tutti i file TXT all’interno della cartella.
zip -r archive.zip my_folder -i "*.txt"
Usando il Flag -x
Il flag -x ti consente di escludere solo determinati file mentre comprimi un’intera cartella.
zip -r archive.zip my_folder -x my_folder/dont_zip.jpg
Inoltre, il flag -x sovrascrive il flag -i quando usato insieme. In questo modo, puoi, ad esempio, dire a zip di includere tutti gli altri file dello stesso tipo tranne il file che non vuoi che venga compresso.
zip -r archive.zip my_folder -i "*.txt" -x my_folder/dont_zip.txt
Come Decomprimere un File Usando il Comando Zip di Linux
Il programma unzip è un programma partner del programma zip predefinito. Estrae file dal tuo archivio ZIP.
Per usare questo programma, devi solo digitare unzip e il nome del file dell’archivio ZIP.
unzip archive.zip
Utilizzando il comando unzip, decomprimerai il file ZIP all’interno della directory di lavoro corrente indipendentemente da dove provenga il file ZIP.
Per estrarre o decomprimere un file Linux all’interno di un file ZIP in modo che gli altri rimangano non estratti, puoi aggiungere il suo nome dopo la parte in cui digiti l’archivio.
unzip archive.zip file.txt
Come Decomprimere una Cartella di Linux Con Zip
Sebbene unzip normalmente estragga le cartelle situate all’interno di un archivio ZIP, può essere piuttosto difficile farlo estrarre solo determinate cartelle. Ma ciò non significa che sia impossibile.
unzip archive.zip my_folder/a_subfolder/*
Quella riga di codice estrae tutto all’interno di a_subfolder.
Inoltre, quando decomprimi una cartella, il programma unzip crea una nuova cartella all’interno della directory di lavoro corrente e disimballa le sue cartelle lì. Se esiste una cartella con lo stesso nome (o una versione precedente della cartella è presente), chiede se va bene sostituire il file attualmente presente nella cartella.
Domande Frequenti
Cosa fa il comando gzip in Linux?
Il comando Linux gzip è uno strumento che puoi usare per memorizzare e comprimere file in un file GZ.
È ZIP migliore di TAR?
In un certo senso, ZIP è migliore di TAR perché i file ZIP possono comprimere, crittografare e proteggere i loro contenuti. Tuttavia, i file TAR sono destinati a combinare file in un unico file per un trasferimento di file più veloce, mentre i file ZIP (nonostante vengano utilizzati per lo stesso scopo) vengono forniti con quelle funzionalità extra in mente.
È TAR più veloce di ZIP?
I file TAR non comprimono né crittografano i loro contenuti. Quindi, se stai cercando un modo più veloce per combinare una grande quantità di file in un unico archivio facile da trasferire, vedrai alcuni guadagni con TAR rispetto a ZIP. Tuttavia, potresti trovare più facile trasferire un file ZIP piuttosto che un file TAR perché i file ZIP tendono ad essere molto più piccoli dei file TAR.
Crediti immagine: Unsplash, Screenshot di Terenz Jomar Dela Cruz