logo

Comando Tar in Linux/Unix con esempi

Il comando tar è l'abbreviazione di archivio su nastro inLinux. Questo comando viene utilizzato per creare l'archivio ed estrarre i file di archivio. In Linux , è uno dei comandi essenziali che facilitano la funzionalità di archiviazione. Possiamo usare questo comando per creare file di archivio non compressi e compressi e anche modificarli e mantenerli.

Tar è un'utilità del software per computer che consente di raccogliere diversi file in un unico file di archivio informatico. Spesso è noto come tarball per scopi di backup e distribuzione. Il titolo viene acquisito da 'archivio su nastro' perché è stato effettivamente sviluppato per specificare i dati su dispositivi I/O sequenziali che non utilizzano nessuno dei loro file system. I gruppi di dati di archivio creati da tar includono molti parametri del file system come organizzazione delle directory, autorizzazione di accesso ai file, proprietà, timestamp e nome. A favore di pax, POSIX ha abbandonato tar, ma tar vede ancora un uso diffuso.

Innanzitutto fu annunciato nella versione 7 Unix nel gennaio 1979, in sostituzione del programma tp. Per archiviare i dati, la struttura dei file è stata standardizzata in POSIX.1-1988 e successivamente POSIX.1-2001 ed è diventata un modello supportato da quasi tutti i moderni sistemi di archiviazione di file. I sistemi operativi simili a Unix generalmente contengono strumenti per supportare i file tar e utilità utilizzate per comprimerli, come bzip2 e gzip.
Dall'aggiornamento Microsoft del 10 aprile 2018, BSD-tar è stato contenuto in Microsoft Windows e sono disponibili due o più strumenti di terze parti per leggere e scrivere questi pattern su Windows.

Formati di file di tar

Sono disponibili molti formati di file tar, inclusi quelli attuali e storici. In POSIX sono scritti due formati tar: pax e ustar.

Intestazione

Il record dell'intestazione del file include i metadati di un file. Nel record di intestazione, le informazioni sono codificate negli standard ASCII per garantire flessibilità tra architetture distinte utilizzando ordinamenti di byte distinti. Pertanto, se ogni file è un file di testo ASCII in un archivio e contiene nomi ASCII, l'archivio è un file di testo ASCII (con diversi caratteri NUL).

Nella tabella seguente sono menzionati diversi campi, definiti dall'effettivo formato tar Unix. La tabella del tipo di file/indicatore di collegamento contiene alcune estensioni moderne. Un campo viene riempito con vari byte NUL se non è utilizzato.

Intestazione tar pre-POSIX.1-1988:

Campo Dimensione del campo Scostamento del campo
Nome del file 100 0
Modalità file 8 100
ID utente numerico del proprietario 8 108
ID utente numerico del gruppo 8 116
Dimensione del file in byte 12 124
Ora dell'ultima modifica sotto forma di ora numerica Unix 12 136
Checksum per il record di intestazione 8 148
Indicatore di collegamento 1 156
Nome del file collegato 100 157

Formato Ustart

Nel formato Ustar, quasi tutti i moderni programmi tar scrivono e leggono archivi, annunciato dallo standard POSIX IEEE P1003.1 del 1988. Ha introdotto campi di intestazione aggiuntivi. I precedenti programmi tar eviterebbero le informazioni aggiuntive, ma i nuovi programmi controlleranno la presenza della stringa 'Ustar' per decidere se è in uso il formato più recente.

Campo Dimensione del campo Scostamento del campo
Molti campi, come nel formato precedente 156 0
Tipo bandiera 1 156
Campo simile al formato precedente 100 157
'Ustar' Indicatore Ustar, quindi NUL 6 257
'00' Versione Ustar 2 263
Nome utente del proprietario 32 265
Nome del gruppo del proprietario 32 297
Numero maggiore del dispositivo 8 329
Numero minore del dispositivo 8 337
Prefisso del nome file 155 3.4.5

POSIX.1-2001/pax

Sun ha proposto una tecnica per aggiungere estensioni a un formato tar nel 1997. Successivamente è stata approvata per lo standard POSIX.1-2001. Il formato è chiamato formato pax o formato tar esteso. Alcuni tag sono specificati dallo standard POSIX, inclusi mtime, atime, linkpath, gname, uname, sizes, gid, uid e una definizione di set di caratteri per nomi di gruppo/utente e nomi di percorso.

Implementazioni chiave di tar

Le implementazioni chiave sono menzionate nell'ordine di origine:

    catrame di solaris viene fornito di default sul sistema operativo Solaris, basato sull'attuale Unix V7. Tar GNU è un'impostazione predefinita su quasi tutte le distribuzioni Linux. Si basa su un pdtar di implementazione di dominio pubblico iniziato nel 1987. Le edizioni recenti possono utilizzare molti formati, come GNU, pax, v7 e ustar. Tar di FreeBSD è diventato un tar predefinito su quasi tutti i sistemi operativi basati su Berkeley Software Distribution, come Mac OS X. Catrame schilico è storicamente importante poiché alcune delle sue estensioni erano famose. È stato rilasciato per la prima volta nell'aprile 1997. File tar Python supporta due o più formati tar, come gnu, pax e ustar; può leggere ma non creare i formati SunOS tar esteso e V7; pax è un formato predefinito per la creazione di archivi. È disponibile per gli utenti dal 2003.

Inoltre, la maggior parte delle implementazioni cpio e pax possono creare e leggere due o più tipi di file tar.

Sintassi del comando tar:

 tar [options] [archive-file] [directory or file to be archived] 

Opzioni nel comando tar

Di seguito sono elencate varie opzioni nel comando tar:

    -C:Questa opzione viene utilizzata per creare l'archivio.-F:Questa opzione viene utilizzata per creare un archivio insieme al nome fornito del file.-X:Questa opzione viene utilizzata per estrarre gli archivi.-In:Può essere utilizzato per aggiungere un archivio al file di archivio esistente.-T:Viene utilizzato per visualizzare o elencare i file all'interno del file archiviato.-UN:Questa opzione viene utilizzata per concatenare i file di archivio.-In:Può essere utilizzato per mostrare informazioni dettagliate.-J:Viene utilizzato per filtrare i file tar di archivio con l'aiuto di tbzip.-Con:È un file zip e informa il comando tar che crea un file tar con l'aiuto di gzip.-R:Questa opzione viene utilizzata per aggiornare e aggiungere una directory o un file in un file .tar esistente.-IN:Questa opzione viene utilizzata per verificare il file di archivio.

Introduzione al file di archivio

Il file di archivio può essere definito come un file che contiene più file con metadati. Questi file vengono utilizzati per raccogliere più di un file di dati insieme in un singolo file per facilitarne l'archiviazione e la portabilità. Può essere utilizzato anche per comprimere file per consumare meno spazio di archiviazione.

Esempi di comando tar

Alcuni degli esempi importanti ampiamente utilizzati nel comando tar sono i seguenti:

1. Creare un archivio tar non compresso con l'opzione -cvf

Questa opzione rende un file tar noto come file.tar . È l'archivio di ogni file .txt al suo interno miadir directory.

Il comando è il seguente:

 $ tar cvf file.tar *.txt 

Comando Tar in Linux

2. Estrazione dei file tramite l'archivio con l'opzione -xvf

Questa opzione può estrarre file tramite archivi.

Il comando è il seguente:

 $ tar xvf file.tar 

Comando Tar in Linux

3. compressione gzip sull'archivio tar con l'opzione -z

Questa opzione rende un file tar noto come file.tar.gz. È l'archivio di ogni file .txt.

Il comando è il seguente:

 $ tar cvzf file.tar.gz *.txt 

Comando Tar in Linux

4. Estrazione dell'archivio tar gzip con l'opzione -xvzf

Questa opzione può estrarre i file tramite i file archiviati file.tar.gz tar.

Il comando è il seguente:

 $ tar xvzf file.tar.gz 

Comando Tar in Linux

5. Creare file tar compressi con l'opzione -j

Questa opzione ci aiuterà a creare e comprimere file di archivio. Sia la decompressione che la compressione richiedono più tempo rispetto a gzip.

Il comando è il seguente:

 $ tar cvfj file.tar.tbz hello1.txt 

Comando Tar in Linux

6. Decomprimere la singola directory o file specificato in Linux

Questa opzione viene utilizzata per decomprimere qualsiasi file nella nostra directory corrente o all'interno della directory specificata con l'opzione -C.

Il comando è il seguente:

 $ tar -xvf file.tar -C file's path in the directory 

Comando Tar in Linux

O,

 $ tar -xvf file.tar 

Comando Tar in Linux

7. Decomprimere più file .tar.tbz, .tar.gz, .tar in Linux

Questa opzione ci aiuterà a farlo diffusione oppure estrai più di un file da tar.bz2, tar.gz e un file di archivio tar.

L'esempio di questa opzione è il seguente:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Comando Tar in Linux

O,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Comando Tar in Linux

O,

scanner java
 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Comando Tar in Linux

8. Controllare la dimensione del file tar.tbz, tar.gz, tar esistente

Il comando ci aiuterà a mostrare la dimensione del file di archivio in kilobyte (KB) menzionata sopra.

Il comando è il seguente:

 $ tar -czf - file2.tar.tbz | wc -c 

O,

 $ tar -czf - file1.tar.gz | wc -c 

O,

 $ tar -czf - file.tar | wc -c 

Comando Tar in Linux

9. Aggiorna il file tar esistente

In Linux, il comando per aggiornare un file tar esistente è il seguente:

 $ tar rvf file.tar *.txt 

10. Elenco dei contenuti e descrizione del file tar con l'opzione tf

Questa opzione ci aiuterà a elencare l'intero elenco dei file di archivio. Inoltre, possiamo elencare contenuti particolari all'interno di qualsiasi file tar.

Il comando è il seguente:

 $ tar tf file.tar 

Comando Tar in Linux

11. Visualizza l'archivio con l'opzione -tvf

In Linux, possiamo usare l'opzione -tvf per visualizzare l'archivio.

Il comando è il seguente:

 $ tar -tvf file.tar 

Comando Tar in Linux

12. Passare il nome del file come argomento per trovare un file tar

Questa opzione può visualizzare i file archiviati con le loro informazioni.

Il comando è il seguente:

 $ tar tvf file.tar filename 

Comando Tar in Linux

13. Usare pipe per lanciare il 'comando grep' per cercare ciò che stiamo cercando

Questa opzione ci aiuterà a elencare solo l'immagine o il testo menzionati presa attraverso file archiviati.

Il comando è il seguente:

 $ tar tvf file.tar | grep 'filename.file' 

O,

 $ tar tvf file.tar | grep 'text to search' 

Comando Tar in Linux

Introduzione ai caratteri jolly

In alternativa, i caratteri jolly vengono definiti caratteri jolly o caratteri jolly in Linux. È un simbolo utilizzato per rappresentare o sostituire più caratteri.

In genere, i caratteri jolly sono un punto interrogativo (?) che illustra un singolo carattere o un asterisco (*) che illustra più caratteri.

Esempio-

14. Trova un'immagine in formato .webp

Ci aiuterà ad estrarre solo i file con l'estensione .webp dall'archivio file.tar. L'opzione -wildcards informa tar di interpretare i caratteri jolly nel nome del file da estrarre.

Il nome del file (*.webp) è racchiuso tra virgolette singole per proteggere il carattere jolly (*) dall'errata espansione di qualsiasi shell.

Il comando è il seguente:

 $ tar tvf file.tar --wildcards '*.webp' 

Comando Tar in Linux

Nota: nel comando precedente, il simbolo '*' viene applicato nella posizione del nome del file per prendere ogni file disponibile in quella directory specifica.

15. Elimina i file dall'archivio tar

Possiamo usare l'opzione --delete per rimuovere file e un archivio tar.

Il comando è il seguente:

 $ tar --delete -f archive.tar file_name 

Esempio:

 tar -delete -f file.tar hello1.txt 

Produzione:

Comando Tar in Linux

ciao1.txt il file è stato rimosso dall'archivio file.tar:

Comando Tar in Linux