tar (software)
In informatica, tar (acronimo per tape archive) è un software che permette di generare dei file utili per l'archiviazione e il backup, sia su memorie di massa che su dispositivi a nastro magnetico utilizzando il formato omonimo. Tale formato è stato reso uno standard da POSIX.1-1998 e dal successivo POSIX.1-2001.
Oltre a poter immagazzinare più file, che si traduce nella possibilità di accumulare dentro un singolo file migliaia di file diversi (packing), si aggiunge il vantaggio della conservazione delle informazioni del file system, quali utente, gruppo e permessi, data e ora, e la struttura delle directory. Secondo la tradizione Unix "ogni programma, una sola funzione", tar non supporta direttamente la compressione dati.
Dal momento che tar è stato sviluppato originariamente per l'uso con dispositivi ad accesso sequenziale, quali appunto le unità a nastro, porta con sé un piccolo prezzo da pagare in termini di prestazioni per quanto riguarda l'estrazione di un singolo file, dal momento che il software deve leggere l'intero archivio per localizzarlo. L'opzione -f è utilizzata per indicare il file da utilizzare per le operazioni di scrittura o rilettura dell'archivio. Comunemente un file prodotto da tar viene denominato tarball.
tar è comunemente utilizzato in unione con un'utility esterna di compressione dati, quali ad esempio gzip, bzip2 o, non più in uso, compress, dal momento che da solo non ha la capacità di comprimere i file. Si potrebbe pensare che ciò richieda più passaggi, mentre l'operatore pipe di Unix permette di combinare i due passaggi in una sola riga di comando. Inoltre, la versione GNU di tar supporta le opzioni a riga di comando -z (gzip), -j (bzip2), e -Z (compress), che abilitano la compressione per il file che viene creato.
Indice |
Utilizzo [modifica]
- Per creare un file con tar, utilizza i seguenti comandi:
- Semplice file di tar:
tar -cf nome_tarball.tar file_da_archiviare1 file_da_archiviare2 ... - Per archiviare e comprimere in due passi:
tar -cf nome_tarball.tar file_da_archiviare1 file_da_archiviare2 ...
gzip nome_tarball.tar
- Per archiviare e comprimere, due passi su una riga sola:
tar -cf nome_tarball.tar file_da_archiviare1 file_da_archiviare2 && gzip nome_tarball.tar
- Per archiviare e comprimere, un passo solo:
tar -czf nome_tarball.tar.gz file_da_archiviare1 file_da_archiviare2
- Semplice file di tar:
- Per vedere il contenuto di un archivio .tar.gz
tar -tvzf nome_tarball.tar.gz
- Per estrarre i file dall'archivio, utilizza i seguenti comandi:
- Semplice file di tar:
tar -xf nome_tarball.tar - Un passaggio alla volta:
gunzip nome_tarball.tar.gz
tar -xf nome_tarball.tar
Tutto insieme:gunzip -c nome_tarball.tar.gz | tar -xf -
- Semplice file di tar:
Per utilizzare bzip2 invece di gzip, è sufficiente sostituire con bzip2 dove viene utilizzato gzip e bunzip2 dove gunzip viene utilizzato nelle varie righe di comando.
Utilizzando il flag della compressione previsto per il tar di GNU:
- Per comprimere:
- Utilizzando gzip:
tar -czf nome_tarball.tgz file_da_archiviare1 file_da_archiviare2 ... - Utilizzando bzip2:
tar -cjf nome_tarball.tbz2 file_da_archiviare1 file_da_archiviare2 ... - Utilizzando xz:
tar -cJf nome_tarball.tar.xz file_da_archiviare1 file_da_archiviare2 ... - Utilizzando compress:
tar -cZf nome_tarball.tar.Z file_da_archiviare1 file_da_archiviare2 ... - Utilizzando un altro programma di compressione:
tar --use-compress-program=name_of_program -cf nome_tarball.tar.XXX file_da_archiviare1 file_da_archiviare2 ...
- Utilizzando gzip:
- Per decomprimere ed estrarre i file dall'archivio:
- Archivio compresso con gzip:
tar -xzf nome_tarball.tar.gz - Archivio compresso con bzip2:
tar -xjf nome_tarball.tar.bz2 - Archivio compresso con xz:
tar -xJf nome_tarball.tar.xz - Archivio compresso con compress:
tar -xZf nome_tarball.tar.Z - Archivio compresso con altro programma di compressione:
tar --use-compress-program=nome_del_programma -xf nome_tarball.tar.XXX
- Archivio compresso con gzip:
Ricorda che:
- c: crea archivi
- x: estrae i file dall'archivio
- v: scorre la lista dei file, generalmente evitato nella creazione/estrazione in quanto potrebbe produrre un lungo output inutile
- z: comprime/decomprime in formato gzip
- j: comprime/decomprime in formato bzip2
- J: comprime/decomprime in formato xz
- Z: comprime/decomprime in formato compress
Estensioni dei file [modifica]
- .tar
- .tar.gz or .tgz (solo se compresso con gzip)
- .tar.bz2, .tbz2, or .tbz (solo se compresso con bzip2)
- .tar.Z (solo se compresso con compress)
Tipo MIME [modifica]
Il tipo MIME associato a tar è application/x-tar.
Dettagli sul file [modifica]
Una limitazione dei primi drive a nastro era che i dati potevano essere scritti solo in blocchi da 512 byte. Un file tar è la concatenazione di uno o più file, ognuno di essi preceduti da un'intestazione. Il file viene trascritto inalterato tranne la sua lunghezza: viene arrotondato ai multipli di 512 byte, lo spazio che avanza viene riempito con zeri (0x00). La fine del file viene contrassegnata con almeno due blochi vuoti (quindi 1Kbyte).
L'intestazione viene codificata in ASCII per aumentare la portabilità dei file: spostare un file tar da una piattaforma con un certo sistema di ordinamento dei byte ad un'altra con diverso ordinamento, creerebbe problemi.
I campi definiti dal formato tar originale, sono elencati nella tabella seguente. Quando un campo non viene usato, viene riempito con degli zero. L'intestazione è discostata con dei byte di zero per formare i blocchi da 512.
| Offset campo | Dimensione | Nome |
|---|---|---|
| 0 | 100 | Nome del file |
| 100 | 8 | Modo file |
| 108 | 8 | ID utente proprietario |
| 116 | 8 | ID utente gruppo |
| 124 | 12 | Dimensione file in byte (in base ottale) |
| 136 | 12 | Data ultima modifica |
| 148 | 8 | Checksum del blocco intestazione |
| 156 | 1 | Indicatore link |
| 157 | 100 | Nome del file collegato |
Voci correlate [modifica]
Collegamenti esterni [modifica]
- (EN) Sito ufficiale del tar GNU
- (EN) Information dettagliate sugli header dei file di tar e USTAR
- (EN) tar7 - Open source tar (scritto in Seed7)
|
|