tar (software)
tar software | |
---|---|
Utilizzo di GNU tar | |
Genere | Archiviatore di file |
Sviluppatore | Bell Labs |
Data prima versione | gennaio 1979 |
Sistema operativo | Unix-like Microsoft Windows |
Linguaggio | C |
tar | |
---|---|
Estensione | .tar
|
Tipo MIME | application/x-tar
|
Uniform Type Identifier (UTI) | public.tar-archive
|
Tipo | archiviazione |
Standard | POSIX.1-1998, POSIX.1-2001 |
Formato aperto? | Sì |
tar (acronimo di tape archive) è un software in grado di produrre file archivio non compressi, denominati tarball[1], ideati principalmente per il backup su nastro magnetico, sebbene il formato tar non sia esclusivo di tale supporto di memoria.[2]
Tale formato è divenuto poi uno standard da POSIX.1-1998 e dal successivo POSIX.1-2001.[senza fonte]
Caratteristiche
[modifica | modifica wikitesto]Oltre a poter immagazzinare più file dentro un unico archivio (packing), tar permette di conservare diverse 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.
Poiché tar
è stato sviluppato in origine per l'uso con dispositivi ad accesso sequenziale, quali appunto le unità a nastro, le prestazioni per quanto riguarda l'estrazione di un singolo file non sono le migliori, dato che il software deve leggere l'intero archivio per localizzarlo. L'opzione -f
indica 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, ad esempio gzip, bzip2 o compress (non più in uso), dal momento che da solo non ha la capacità di comprimere i file. Si potrebbe pensare che ciò richieda più passaggi: di fatto non è così, poiché l'operatore pipe di Unix permette di combinare i due passaggi in un solo comando, utilizzando un'unica 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.
Esempi di utilizzo e sintassi
[modifica | modifica wikitesto]- Per creare un file con tar, utilizza i seguenti comandi:
- Semplice file "tar" (per archiviazione):
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 sola riga:
tar -cf nome_tarball.tar file_da_archiviare1 file_da_archiviare2 && gzip nome_tarball.tar
- Per archiviare e comprimere, in un solo passo:
tar -czf nome_tarball.tar.gz file_da_archiviare1 file_da_archiviare2
- Semplice file "tar" (per archiviazione):
- 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 archivix
: estrae i file dall'archiviov
: scorre la lista dei file, generalmente evitato nella creazione/estrazione in quanto potrebbe produrre un lungo output inutilez
: comprime/decomprime in formato gzipj
: comprime/decomprime in formato bzip2J
: comprime/decomprime in formato xzZ
: comprime/decomprime in formato compress
Dettagli sul formato file
[modifica | modifica wikitesto]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 blocchi vuoti (quindi 1 KB).
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.
Nella tabella seguente sono elencati i campi definiti dal formato tar originale. Quando un campo non viene usato è riempito con una serie di 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 |
Estensioni
[modifica | modifica wikitesto]- .tar
- .tar.gz oppure .tgz (quando compresso con gzip)
- .tar.bz2, .tbz2, oppure .tbz (quando compresso con bzip2)
- .tar.lzma (quando compresso con lzma)
- .tar.xz (quando compresso con xz)
- .tar.Z (quando compresso con compress)
- .tar.7z (quando compresso con 7-Zip)
Tipo MIME
[modifica | modifica wikitesto]Il tipo MIME associato a tar
è application/x-tar.
Note
[modifica | modifica wikitesto]- ^ (EN) TarBall, su Debian Wiki. URL consultato il 4 ottobre 2023.
- ^ (EN) The TAR File Format, su FileFormat.info. URL consultato il 4 ottobre 2023.
Bibliografia
[modifica | modifica wikitesto]- (EN) W. Curtis Preston, Backing Up and Restoring with the tar Utility, in Unix Backup and Recovery, O'Reilly Media, 1999, ISBN 9781565926424.
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale del tar GNU, su gnu.org.
- (EN) Information dettagliate sugli header dei file di tar e USTAR, su mkssoftware.com.
- (EN) tar7 - Open source tar (scritto in Seed7)