5.5. tar: Tape ARchiver

Pur avendo già usato tar nel capitolo La compilazione e l'installazione di software libero, non vi abbiamo spiegato come funziona; lo scopo di questa sezione è proprio questo. Come find, anche tar è un antico strumento di Unix, e come tale ha una sintassi un po' particolare. La sua sintassi è:
tar [opzioni] [file...]
Eccovi ora un elenco di opzioni. Ricordate che esse possiedono tutte un'opzione estesa equivalente, ma per queste dovrete fare riferimento alla relativa pagina man, perché qui non saranno indicate. E, naturalmente, qui non saranno indicate neanche tutte le opzioni disponibili :-).

Nota

l'uso del trattino iniziale (-) per le opzioni brevi di tar è da evitare, fatta eccezione per quelle che seguono un'opzione estesa.

Ci sono tante, tante, tante altre opzioni, potete fare riferimento alla pagina man tar(1) per una lista completa; guardate ad esempio l'opzione d. Ora facciamo un po' di pratica: supponiamo che vogliate creare un archivio di tutte le immagini contenute in /shared/images, compresso con bzip2, di nome images.tar.bz2 e posizionato nella vostra home directory. Dovrete quindi scrivere:
 #
 # Attenzione: dovete trovarvi nella directory contenente 
 #   i file che volete archiviare!
 #
$ cd /shared
$ tar cjf ~/images.tar.bz2 images/
Come potete vedere, abbiamo usato tre opzioni: c per dire a tar che volevamo creare un archivio, j per dirgli che lo volevamo compresso con bzip2, e f ~/images.tar.bz2 per dirgli che l'archivio doveva essere creato nella nostra directory home, con il nome images.tar.bz2. Ora potremmo voler controllare che l'archivio sia corretto; possiamo farlo semplicemente vedendo l'elenco dei suoi file:
 #
 # Torniamo alla nostra directory home
 #
$ cd
$ tar tjvf images.tar.bz2
Qui abbiamo detto a tar di elencare (t) i file dell'archivio images.tar.bz2 (f images.tar.bz2), avvertendolo che questo archivio era compresso con bzip2 (j), e richiedendo una lista estesa (v). Ora supponiamo che voi abbiate cancellato la directory delle immagini; fortunatamente il vostro archivio è intatto, e ora volete estrarre di nuovo i file nelle loro posizioni originali, in /shared. Ma, poiché volete che il vostro comando find per cercare nuove immagini continui a funzionare correttamente, dovete preservare tutti i loro attributi:
 #
 # spostatevi nella directory dove volete estrarre
 # i file contenuti nell'archivio
 #
$ cd /shared
$ tar jxpf ~/images.tar.bz2
Ed ecco fatto!

Ora, supponiamo che vogliate estrarre dall'archivio la directory images/cars, e nient'altro. Potete scrivere così:
$ tar jxf ~/images.tar.bz2 images/cars
Nel caso ve ne stiate preoccupando, state tranquilli: se provate ad archiviare file speciali, tar li considererà per quello che sono, file speciali, e non ne copierà il contenuto. Perciò, sì, potete tranquillamente includere /dev/mem in un archivio :-). Ah, si comporta correttamente anche con i collegamenti, quindi non preoccupatevi neanche di questo. Per quel che riguarda i collegamenti simbolici, date uno sguardo anche all'opzione h nella relativa pagina man.


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/