tar (software)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
tar
software
Utilizzo di GNU tar
Utilizzo di GNU tar
Utilizzo di GNU tar
GenereArchiviatore di file
SviluppatoreBell Labs
Data prima versionegennaio 1979
Sistema operativoUnix-like
Microsoft Windows
LinguaggioC
tar
Estensione.tar
Tipo MIMEapplication/x-tar
Uniform Type Identifier (UTI)public.tar-archive
Tipoarchiviazione
StandardPOSIX.1-1998, POSIX.1-2001
Formato aperto?

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
  • 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 -

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 ...
  • 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

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

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
  • .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)

Il tipo MIME associato a tar è application/x-tar.

  1. ^ (EN) TarBall, su Debian Wiki. URL consultato il 4 ottobre 2023.
  2. ^ (EN) The TAR File Format, su FileFormat.info. URL consultato il 4 ottobre 2023.
  • (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]