Autore: Stefano Teodorani
Lavorando su server linux, mi è capitato spesso di dover installare pacchetti software via terminale.
Purtroppo non sempre questi pacchetti sono disponibili per la nostra distribuzione preferita e a volte capita di dover decomprimere files con estensioni misteriose.
Questo articolo è una piccola guida su come comprimere e decomprimere da linea di comando i formati compressi più conosciuti.
Sono sicuro che i vostri commenti mi aiuteranno a rendere ancora più completo questo piccolo prontuario.
.zip
Prima di vedere in pratica come usarlo, ricordo che zip, di default, aggiunge o rimpiazza i file quando vengono aggiunti agli archivi.
Zippare un file
zip ./nome_archivio.zip ./file.est
dopo aver dato invio il sistema ci risponderà con un messaggio che ci indicherà la percentuale di compressione, ad esempio: adding: file.est (deflated 79%)
Zippare una cartella
Aggiunge la directory templates ad archivio_templates.zip, se l’archivio non esiste viene creato
zip -r ./archivio_template.zip ./templates
I messaggi del comando saranno:
updating: templates/ (stored 0%)
adding: templates/faq.html (deflated 79%)
adding: templates/index.html (deflated 28%)
Unzippare
unzip nome_file.zip
NOTA: Col programma zip è possibile scompattare anche i file zippati autoestraenti (quelli che terminano in .exe)
.gz (gzip)
Gzip è una utility di compressione che, a differenza di zip, può solo comprimere file e non cartelle. Per poter comprimere cartelle si può utilizzare in combinazione col comando tar.
Comprimere file con gzip
gzip nome_file.est
Gzip comprime il file indicato e aggiunge l’estensione gz.
Decomprimere archivi con .gzip
gzip -d file_compresso.gz
oppure
gunzip file_compresso.gz
.bz2 (bzip2)
bzip2 è un’altra utilità di sola compressione, più recente di gzip e riesce ad ottenere percentuali di compressioni più elevate.
Comprimere
bzip2 ./file.est
Decomprimere
bzip2 -d ./infile.bz2
oppure
bunzip2 ./infile.bz2
.tar
Creare archivi
tar -cvf nome_archivio.tar nome_cartella_da_comprimere
Estrarre archivi
tar -xvf archivio.tar
Listare il contenuto In questo caso non viene estratto il file dell’archivio
tar -tf archivio.tar
Il significato delle opzioni usate:
c: crea un archivio
f: specifica un file da estrarre o da creare
x: estrae un archivio
t: permette di mostrare il contenuto degli archivi
v: dà in output maggiori informazioni sui file compressi o decompressi
tar.gz e tar.bz2
tar è una storica utility di linux che serve solo ad archiviare, non riduce quindi lo spazio occuato dai file. gzip e bzip2 comprimono ma non archiviano. Coniugando l’uso delle due utility (basta aggiungere una z, gzip, o j, bzip2, alle opzioni del comando tar) possiamo comprimere anche cartelle (archivi).
Comprimere archivi con gzip (.tgz o tar.gz)
tar czvf nome_archivio.tgz [nome_cartella_da_archiviare]
Comprimere archivi con con bzip2 (.tar.bz2)
tar cjvf nome_archivio.bz2 nome_cartella_da_archiviare]
Decomprimere archivi creati con gzip (.tgz o tar.gz)
tar xvfz ./nome_archivio.tgz
Decomprimere archivi creati con bzip2 (.tar.bz2)
tar xjvf ./nome_archivio.tar.bz2
In entrambi i casi verrà conservato l’archivio iniziale.
Listare il contenuto degli archivi compressi
tar -ztf nome_archivio.tar.gz
Eliminare file scompattati per errore
Può capitare che scompattando un archivio esso metta tutti i TRECENTO file nella directory corrente e non in una sottodirectory. Per cancellare tutti questi file si può operare nel seguente modo:
tar -ztf nome_archivio.tar.gz | xargs rm
Con le opportune modifiche il comando può essere utilizzato anche in altri casi visti sopra.
.rar
Installazione
sudo apt-get install rar unrar
Decomprimere file .rar
unrar archivio.rar
Comprimere un file .rar
rar a archivio nome_file
.7z
Comprimere
7z a archivio nome_file
Decomprimere
7z e archivio.7z