GNU/Linux >> Linux Esercitazione >  >> Linux

The Ultimate Tar Command Tutorial con 10 esempi pratici

Su piattaforma Unix, comando tar è l'utilità di archiviazione principale. Comprendere le varie opzioni del comando tar ti aiuterà a padroneggiare la manipolazione dei file di archivio.

In questo articolo, esaminiamo vari esempi tar incluso come creare archivi tar (con compressione gzip e bzip), estrarre un singolo file o directory, visualizzare il contenuto dell'archivio tar, convalidare l'integrità degli archivi tar, scoprire la differenza tra archivio tar e file system, stimare la dimensione del tar archivi prima di crearlo ecc.,

1. Creazione di un archivio utilizzando il comando tar

Creazione di un archivio tar non compresso usando l'opzione cvf

Questo è il comando di base per creare un archivio tar.

$ tar cvf archive_name.tar dirname/

Nel comando sopra:

  • c – crea un nuovo archivio
  • v – elenca dettagliatamente i file che vengono elaborati.
  • f – di seguito è riportato il nome del file di archivio

Creazione di un archivio compresso con tar utilizzando l'opzione cvzf

L'opzione tar cvf sopra, non fornisce alcuna compressione. Per utilizzare una compressione gzip sull'archivio tar, usa l'opzione z come mostrato di seguito.

$ tar cvzf archive_name.tar.gz dirname/
  • z – filtra l'archivio tramite gzip

Nota: .tgz è uguale a .tar.gz

Nota: Mi piace mantenere invariata l'opzione "cvf" (o tvf o xvf) per tutta la creazione (o visualizzazione o estrazione) di archivi e aggiungere un'opzione aggiuntiva alla fine, che è più facile da ricordare. cioè cvf per la creazione di archivi, cvfz per la creazione di archivi gzip compressi, cvfj per la creazione di archivi bzip2 compressi ecc., Affinché questo metodo funzioni correttamente, non dare - davanti alle opzioni.

Creazione di un archivio tar compresso mediante l'opzione cvjf

Crea un archivio tar bzip2 come mostrato di seguito:

$ tar cvfj archive_name.tar.bz2 dirname/
  • j – filtra l'archivio tramite bzip2

gzip vs bzip2 :bzip2 impiega più tempo per comprimere e decomprimere rispetto a gzip. bzip2 la dimensione dell'archivio è inferiore a gzip.

Nota: .tbz e .tb2 sono gli stessi di .tar.bz2

2. Estrarre (untar) un archivio usando il comando tar

Estrai un file *.tar usando l'opzione xvf

Estrai un file tar usando l'opzione x come mostrato di seguito:

$ tar xvf archive_name.tar
  • x – estrae i file dall'archivio

Estrai un archivio tar compresso con gzip ( *.tar.gz ) usando l'opzione xvzf

Usa l'opzione z per decomprimere un archivio tar di gzip.

$ tar xvfz archive_name.tar.gz

Estrazione di un archivio tar compresso ( *.tar.bz2 ) utilizzando l'opzione xvjf

Usa l'opzione j per decomprimere un archivio tar bzip2.

$ tar xvfj archive_name.tar.bz2

Nota: In tutti i comandi precedenti v è facoltativo, che elenca il file in elaborazione.

3. Elencare un archivio usando il comando tar

Visualizza il contenuto del file di archivio tar senza estrarre utilizzando l'opzione tvf

È possibile visualizzare il contenuto del file *.tar prima dell'estrazione come mostrato di seguito.

$ tar tvf archive_name.tar

Visualizza il contenuto del file *.tar.gz senza estrarre utilizzando l'opzione tvzf

È possibile visualizzare il contenuto del file *.tar.gz prima dell'estrazione come mostrato di seguito.

$ tar tvfz archive_name.tar.gz

Visualizza il contenuto del file *.tar.bz2 senza estrarre utilizzando l'opzione tvjf

È possibile visualizzare il contenuto del file *.tar.bz2 prima dell'estrazione come mostrato di seguito.

$ tar tvfj archive_name.tar.bz2

4. Elencare il contenuto del file tar con meno comandi

Quando il numero di file in un archivio è maggiore, puoi reindirizzare l'output di tar a meno. Ma puoi anche usare less command direttamente per visualizzare l'output dell'archivio tar, come spiegato in uno dei nostri precedenti articoli Apri e visualizza 10 diversi tipi di file con Linux Less Command:il massimo potere di Less.

5. Estrai un singolo file dal file tar, tar.gz, tar.bz2

Per estrarre un file specifico da un archivio tar, specificare il nome del file alla fine del comando tar xvf come mostrato di seguito. Il comando seguente estrae solo un file specifico da un file tar di grandi dimensioni.

$ tar xvf archive_file.tar /path/to/file

Utilizzare l'opzione pertinente z o j in base al metodo di compressione gzip o bzip2 rispettivamente come mostrato di seguito.

$ tar xvfz archive_file.tar.gz /path/to/file

$ tar xvfj archive_file.tar.bz2 /path/to/file

6. Estrai una singola directory dal file tar, tar.gz, tar.bz2

Per estrarre una singola directory (insieme alla sua sottodirectory e ai suoi file) da un archivio tar, specifica il nome della directory alla fine del comando tar xvf come mostrato di seguito. Quanto segue estrae solo una directory specifica da un file tar di grandi dimensioni.

$ tar xvf archive_file.tar /path/to/dir/

Per estrarre più directory da un archivio tar, specifica quei nomi di directory individuali alla fine del comando tar xvf come mostrato di seguito.

$ tar xvf archive_file.tar /path/to/dir1/ /path/to/dir2/

Utilizzare l'opzione pertinente z o j in base al metodo di compressione gzip o bzip2 rispettivamente come mostrato di seguito.

$ tar xvfz archive_file.tar.gz /path/to/dir/

$ tar xvfj archive_file.tar.bz2 /path/to/dir/

7. Estrai gruppi di file dagli archivi tar, tar.gz, tar.bz2 usando l'espressione regolare

È possibile specificare una regex per estrarre i file corrispondenti a un modello specificato. Ad esempio, seguendo il comando tar vengono estratti tutti i file con estensione pl.

$ tar xvf archive_file.tar --wildcards '*.pl'

Spiegazione delle opzioni:

  • –wildcards *.pl – file con estensione pl

8. Aggiunta di un file o di una directory a un archivio esistente utilizzando l'opzione -r

Puoi aggiungere file aggiuntivi a un archivio tar esistente come mostrato di seguito. Ad esempio, per aggiungere un file al file *.tar, procedi come segue:

$ tar rvf archive_name.tar newfile

Questo nuovo file verrà aggiunto all'archivio_name.tar esistente. Anche l'aggiunta di una directory al tar è simile

$ tar rvf archive_name.tar newdir/

Nota: Non è possibile aggiungere file o directory a un archivio compresso. Se provi a farlo, riceverai l'errore "tar:Impossibile aggiornare gli archivi compressi" come mostrato di seguito.

$ tar rvfz archive_name.tgz newfile
tar: Cannot update compressed archives
Try `tar --help' or `tar --usage' for more information.

9. Verifica i file disponibili in tar usando l'opzione -W

Come parte della creazione di un file tar, puoi verificare il file di archivio che è stato creato utilizzando l'opzione W come mostrato di seguito.

$ tar cvfW file_name.tar dir/

Se hai intenzione di rimuovere una directory/un file da un file di archivio o dal file system, potresti voler verificare il file di archivio prima di farlo come mostrato di seguito.

$ tar tvfW file_name.tar
Verify 1/file1
1/file1: Mod time differs
1/file1: Size differs
Verify 1/file2
Verify 1/file3

Se una riga di output inizia con Verifica e non sono presenti righe diverse, il file/la directory è OK. In caso contrario, dovresti indagare sul problema.

Nota: per un file di archivio compresso ( *.tar.gz, *.tar.bz2 ) non puoi effettuare la verifica.

Trovare la differenza tra un archivio e un file system può essere fatto anche per un archivio compresso. Mostra anche lo stesso output di cui sopra escluse le righe con Verifica.

Trovare la differenza tra il file di archivio gzip e il file system

$ tar dfz file_name.tgz

Trovare la differenza tra il file di archivio bzip2 e il file system

$ tar dfj file_name.tar.bz2

10. Stima la dimensione dell'archivio tar

Il comando seguente stima la dimensione del file tar ( in KB ) prima di creare il file tar.

$ tar -cf - /directory/to/archive/ | wc -c
20480

Il comando seguente stima la dimensione del file tar compresso ( in KB ) prima di creare i file tar.gz, tar.bz2.

$ tar -czf - /directory/to/archive/ | wc -c
508

$ tar -cjf - /directory/to/archive/ | wc -c
428

Linux
  1. Il tutorial del comando Numfmt con esempi per principianti

  2. Il tutorial sui comandi di tipo con esempi per principianti

  3. Il tutorial sul comando Shuf con esempi per principianti

  4. Il tutorial Ultimate Bash Array con 15 esempi

  5. Comando Eco con esempi pratici

Il tutorial del comando mktemp con esempi per principianti

Il tutorial sul comando Grep con esempi per principianti

Il tutorial sui comandi Uniq con esempi per principianti

Il tutorial del comando fc con esempi per principianti

I 50 esempi pratici del comando SED in Linux

HowTo:l'esercitazione definitiva sui comandi Logrotate con 10 esempi