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