Attenzione: l'articolo è stato scritto da oltre 1 anno, le informazioni in esso contenute potrebbero essere datate e non più attuali.

I programmi di compressione e archiviazione

Chi viene dal mondo Windows è abituato ad un ottimo strumento di compressione e archiviazione: il formato zip e il programma Winzip. Questo strumento, fondendo due funzioni (compressione e archiviazione), nasconde all'utente il fatto che, queste due, sono funzioni distinte. Nel mondo linux la differenza si nota maggiormente perché le utility più utilizzate tendono a svolgere solo una delle due funzioni. Per comprimere file si usa gzip o bzip2, mentre per archiviare si usa tar; non manca però l'opportunità di fondere le due operazioni attraverso appositi switch passati al comando tar. Vediamo ora l'utilizzo degli strumenti di compressione e archiviazione, ricordando che mi limiterò a presentare gli strumenti più diffusi.
ATTENZIONE: se alcuni comandi elencati non sono disponibili è sufficiente installarli dai cd della propria distribuzione, state attenti al fatto che zip e unzip si trovano in due pacchetti diversi, installateli entrambi se vi servono. I nomi dei paccchetti ricalcano a grandi linee il nome dei comandi. Per le procedure di installazione potete leggere QUESTA e QUEST'ALTRA PAGINA.

Zip

Il formato zip non è molto usato in ambiente Linux, tuttavia è opportuno analizzarlo per gestire correttamente i file provenienti dagli ambienti Windows, dove, invece, è lo standard di fatto.

Prima di vedere in pratica come usarlo, ricordo solo 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

  • 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%)
    (aggiunge la directory templates ad archivio_templates.zip, se l'archivio non esiste viene creato)

Unzippare

  • unzip nome_file.zip

NOTA: Col programma zip è possibile scompattare anche i file zippati autoestraenti (quelli che terminano in .exe)

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

  • gzip nome_file.est
    Gzip comprime il file indicato e aggiunge l'estensione gz.

Decomprimere i file gzip

  • gzip -d file_compresso.gz oppure
    gunzip file_compresso.gz

Bzip2

bzip2 è un'altra utilità di sola compressione, più recente di gzip e riesce ad ottenere percentuali di compressioni più elevate.

Bzippare

  • bzip2 ./file.est

Decomprimere file bzip2

  • 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
... senza estrarre i 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 / tar.bz2

tar è un utility 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
  • 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
  • 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

Da quello che ho capito l'algoritmo di compressione non è liberamente utilizzabile, quindi per poter creare archivi rar dovrete comprare il programma dal sito della Winrar (è disponibile anche una versione trial). Per scompattare gli archivi, invece, sono disponibili i codici sorgenti (ma non sono sotto licenze libere, credo) e cercando in rete è possibile trovare il pacchetto per la vostra distribuzione. L'uso ricalca quello delle altre utility:

  • unrar e archivio.rar

Strumenti grafici

Quelli che trovo più utili: Ark e File-roller.

Argomenti correlati

  • man zip
  • man tar
  • man bzip2
  • man gzip
Il tuo voto: Nessuno Media: 3.3 (4 voti)

Commenti

Esistono anche altri programmi di compressione !

Volevo portare all'attenzione dei lettori che esistono anche altri programmi di compressione dati (in fase di sviluppo) che non hanno niente da invidiare a RAR e ZIP e sono stati creati da un Italiano!
link:
http://www.winturtle.netsons.org/