Quest'oggi, la mia rubrica sul terminale si concentrerà sulla compressione/archiviazione dei files nel nostro computer, sfruttando il comando
Naturalmente se vogliamo possiamo anche comprimere l'intera cartella, in modo tale che chi dovesse scompattare l'archivio non si ritrovi 3 (ma potrebbero essere 100) files buttati nel mezzo, ma una comoda cartella che contiene li stessi. La sintassi per comprimere una cartella è del tutto simile, nel nostro caso gli elementi erano già presenti in una cartella chiamata "Elettronica", quindi vado indietro di una directory (con
Come sempre la mia è stata una spolverata per farvi tornare alla mente i principi base (ormai nessuno più compatta/scompatta da terminale, e in ambito Linux/Unix spesse volte è usato tar/gzip, cui probabilmente dedicherò un post) della compressione in zip, che può farvi molto comodo essendo la più usata in ambito windows, e quindi vi permette ottima portabilità dei vostri archivi.
Come sempre le informazioni migliori non si ottengono da questo post ma dall'
Ciao a tutti!
zip
Uso base.
L'uso base del comando zip è molto semplice, ed èzip nomenuovo.zip file_da_zippare
. Vediamo velocemente un esempio: nella directory attuale è presente il seguente file$ ls -lh
-rw-rw-rw- 1 antonio antonio 171K 2004-10-05 23:28 assembly.ppt
Come possiamo facilmente notare il suo peso è di 171Kb. Proviamo adesso a comprimerlo tramite zip
$ zip assembly.zip assembly.ppt
adding: assembly.ppt (deflated 84%)
Stando a quanto ci dice il comando, il file è stato compresso dell'84%! Possiamo immediatamente verificare la cosa$ ls -lh
totale 204K
-rw-rw-rw- 1 antonio antonio 171K 2004-10-05 23:28 assembly.ppt
-rw-r--r-- 1 antonio antonio 28K 2009-09-16 01:28 assembly.zip
Da 171Kb a soli 28Kb!! Non mi sembra poco... Ottimo se vogliamo mandare i nostri files via email.L'unzip
Se compattiamo un immagine dobbiamo essere naturalmente anche capaci di scompattarla per recuperarne il contenuto originario, e per fare questo il comando da dare èunzip archivio_da_estrarre.zip
. Quindi, per riavere il contenuto del file appena zippato ci basta fare:$ unzip assembly.zip
Archive: assembly.zip
inflating: assembly.ppt
Et voilà :)Zippiamoli in tanti.
Se invece vogliamo comprimere più files contemporaneamente la sintassi da dare èzip nomenuovo.zip file1 file2 ... fileN
. Naturalmente, come tutti sanno un esempio vale più di mille parole, perciò vi mostrerò la compressione di alcune delle mie presentazioni del corso di elettronica$ zip elettronica.zip algebra_boobleana.ppt assembly.ppt diodi.ppt
adding: algebra_boobleana.ppt (deflated 81%)
adding: assembly.ppt (deflated 84%)
adding: diodi.ppt (deflated 71%)
Ed ecco le tre presentazioni unite in un unico file di soli$ ls -lh
-rw-rw-rw- 1 antonio antonio 233K 2004-10-13 14:57 algebra_boobleana.ppt
-rw-rw-rw- 1 antonio antonio 171K 2004-10-05 23:28 assembly.ppt
-rw-rw-rw- 1 antonio antonio 185K 2003-03-04 08:21 diodi.ppt
-rw-r--r-- 1 antonio antonio 125K 2009-09-16 01:32 elettronica.zip
125Kb!! Contro i 233+171+185 iniziali :) (si, mi scoccia fare il conto :P)Naturalmente se vogliamo possiamo anche comprimere l'intera cartella, in modo tale che chi dovesse scompattare l'archivio non si ritrovi 3 (ma potrebbero essere 100) files buttati nel mezzo, ma una comoda cartella che contiene li stessi. La sintassi per comprimere una cartella è del tutto simile, nel nostro caso gli elementi erano già presenti in una cartella chiamata "Elettronica", quindi vado indietro di una directory (con
cd ..
) e zippo::~/Documenti/Elettronica$ cd ..
:~/Documenti$ zip elettronica.zip Elettronica
adding: Elettronica/ (stored 0%)
Proteggere gli archivi con password
Possiamo naturalmente immettere una password, e far criptare il contenuto dell'archivio, in modo tale che solo chi desideriamo sia in grado di scompattarlo e soprirne i files. Per fare questo l'opzione è-e
, ed immediatamente dopo il sistema ci chiederà la password da inserire (e ci chiederà per sicurezza di riconfermarla). Vediamo un esempio:$ zip -e elettronica.zip Elettronica
Enter password:
Verify password:
adding: Elettronica/ (stored 0%)
Naturalmente, poi, all'utilizzo di unzip
tale password ci verrà richiesta$ unzip elettronica.zip
Archive: elettronica.zip
[elettronica.zip] Elettronica/ password:
creating: Elettronica/
Compressione o velocità?
Naturalmente, archiviando un file è possibile decidere il grado di compressione con cui verrà preparato l'archivio. Questo grado può essere scelto da 0 a 9, dove 0 indica compressione nulla e velocità massima, e 9 compressione massima e velocità minima. Possiamo fare alcune prove per verificare l'effetto di questi parametri:$ zip -9 doc.zip doc.dvi
updating: doc.dvi (deflated 30%)
antonio@ubuntu:~$ zip -0 doc.zip doc.dvi
updating: doc.dvi (stored 0%)
La differenza è più che evidente. Alla luce della praticamente indistinguibile velocità di compressione (almeno per files non troppo grandi) consiglio sempre di sfruttare l'opzione -9.Guardiamo dentro un zip
Per elencare i files all'interno di un archivio zip l'opzione di unzip è-l
, e va usata nel seguente modo:$ zip immagini.zip *
adding: banner_gghiotta.png (stored 0%)
adding: banner_gghiotta.xcf (deflated 45%)
adding: bkgr.jpg (deflated 5%)
adding: bkgr.xcf (deflated 41%)
adding: desktop.png (deflated 1%)
adding: kiwi.png (deflated 0%)
$ unzip -l immagini.zip
Archive: immagini.zip
Length Date Time Name
-------- ---- ---- ----
25231 09-14-09 18:02 banner_gghiotta.png
150838 09-14-09 18:01 banner_gghiotta.xcf
201257 09-15-09 01:49 bkgr.jpg
879834 09-15-09 01:49 bkgr.xcf
423413 09-15-09 01:52 desktop.png
172489 09-14-09 21:09 kiwi.png
-------- -------
1853062 6 files
Qui ho mostrato un altro uso dei caratteri speciali, scrivendo zip immagini.zip *
, il carattere "*" mi ha permesso di dire "tutti i files", cosicchè l'archivio andasse a contenere tutti i files presenti nella directory in cui mi trovavo. Poi il comando unzip -l immagini.zip
mi permette di vedere il contenuto dell'archivio, inclusi peso (totale e del singolo files, relativi sempre ai file non compressi), data e ora dell'ultima modifica e nome.Check UP
Se infine vogliamo controllare se il contenuto del nostro file si è rovinato con il tempo (eh si, i zip invecchiano :P) possiamo sfruttare l'opzione-t
:$ unzip -t immagini.zip
Archive: immagini.zip
testing: banner_gghiotta.png OK
testing: banner_gghiotta.xcf OK
testing: bkgr.jpg OK
testing: bkgr.xcf OK
testing: desktop.png OK
testing: kiwi.png OK
No errors detected in compressed data of immagini.zip.
Come sempre la mia è stata una spolverata per farvi tornare alla mente i principi base (ormai nessuno più compatta/scompatta da terminale, e in ambito Linux/Unix spesse volte è usato tar/gzip, cui probabilmente dedicherò un post) della compressione in zip, che può farvi molto comodo essendo la più usata in ambito windows, e quindi vi permette ottima portabilità dei vostri archivi.
Come sempre le informazioni migliori non si ottengono da questo post ma dall'
--help
del comando, che vi consiglio vivamente di visualizzare.Ciao a tutti!