Comando Tar su Linux
Il comando tar (archivio nastro) viene utilizzato per creare ed estrarre archivi in Linux. Può comprimere e archiviare più file in un unico archivio.
Le estensioni di file comunemente viste sono .tar.gz e .tar.bz2 che è un archivio tar ulteriormente compresso utilizzando rispettivamente gli algoritmi gzip o bzip.
In questo tutorial daremo un'occhiata a semplici esempi di utilizzo del comando tar per eseguire lavori quotidiani di creazione ed estrazione di archivi su desktop o server Linux.
Utilizzo del comando tar
Il comando tar è disponibile per impostazione predefinita sulla maggior parte dei sistemi Linux e non è necessario installarlo separatamente.
With tar there are 2 compression formats, gzip and bzip. The "z" option specifies gzip and "j" option specifies bzip. It is also possible to create uncompressed archives.
1. Estrai un archivio tar.gz
Bene, l'uso più comune è estrarre archivi tar. Il comando seguente estrarrà i file da un archivio tar.gz
$ tar -xvzf tarfile.tar.gz
Ecco una rapida spiegazione dei parametri utilizzati -
x - Extract files v - verbose, print the file names as they are extracted one by one z - The file is a "gzipped" file f - Use the following tar archive for the operation
Queste sono alcune delle opzioni importanti da memorizzare
Estrai gli archivi tar.bz2/bzip
I file con estensione bz2 sono compressi con l'algoritmo bzip e anche il comando tar può gestirli. Usa l'opzione j invece dell'opzione z.
$ tar -xvjf archivefile.tar.bz2
2. Estrai i file in una directory o in un percorso specifico
Per estrarre i file in una directory specifica, specificare il percorso utilizzando l'opzione "-C". Nota che è una C maiuscola.
$ tar -xvzf abc.tar.gz -C /opt/folder/
Tuttavia, prima assicurati che la directory di destinazione esista, poiché tar non creerà la directory per te e fallirà se non esiste.
3. Estrai un singolo file
Per estrarre un singolo file da un archivio basta aggiungere il nome del file dopo il comando come questo
$ tar -xz -f abc.tar.gz "./new/abc.txt"
Più di una volta il file può essere specificato nel comando precedente in questo modo
$ tar -xv -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
4. Estrai più file utilizzando i caratteri jolly
I caratteri jolly possono essere utilizzati per estrarre un gruppo di file che corrispondono ai caratteri jolly forniti. Ad esempio tutti i file con estensione ".txt".
$ tar -xv -f abc.tar.gz --wildcards "*.txt"
5. Elenca e cerca i contenuti dell'archivio tar
Se vuoi semplicemente elencare i contenuti dell'archivio tar e non estrarli, usa l'opzione "-t". Il comando seguente stampa il contenuto di un archivio tar compresso con gzip,
$ tar -tz -f abc.tar.gz ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/abc.txt ...
Pipe l'output a grep per cercare un file o meno comando per sfogliare l'elenco. Utilizzando l'opzione dettagliata "v" verranno stampati ulteriori dettagli su ciascun file.
Per i file tar.bz2/bzip usa l'opzione "j"
Utilizzare il comando sopra in combinazione con il comando grep per cercare nell'archivio. Semplice!
$ tar -tvz -f abc.tar.gz | grep abc.txt -rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt
6. Crea un archivio tar/tar.gz
Ora che abbiamo imparato come estrarre gli archivi tar esistenti, è tempo di iniziare a crearne di nuovi. Al comando tar può essere detto di inserire i file selezionati in un archivio o in un'intera directory. Ecco alcuni esempi.
Il comando seguente crea un archivio tar utilizzando una directory, aggiungendo tutti i file in essa contenuti e anche le sottodirectory.
$ tar -cvf abc.tar ./new/ ./new/ ./new/cde.txt ./new/abc.txt
L'esempio sopra non crea un archivio compresso. Solo un semplice archivio, che mette insieme più file senza alcuna compressione reale.
Per comprimere, usa l'opzione "z" o "j" rispettivamente per gzip o bzip.
$ tar -cvzf abc.tar.gz ./new/
The extension of the file name does not really matter. "tar.gz" and tgz are common extensions for files compressed with gzip. ".tar.bz2" and ".tbz" are commonly used extensions for bzip compressed files.
7. Chiedi conferma prima di aggiungere file
Un'utile opzione è "w" che fa sì che tar chieda conferma per ogni file prima di aggiungerlo all'archivio. Questo a volte può essere utile.
Verrebbero aggiunti solo quei file a cui viene data una risposta affermativa. Se non inserisci nulla, la risposta predefinita sarebbe "No".
# Add specific files $ tar -czw -f abc.tar.gz ./new/* add ‘./new/abc.txt’?y add ‘./new/cde.txt’?y add ‘./new/newfile.txt’?n add ‘./new/subdir’?y add ‘./new/subdir/in.txt’?n # Now list the files added $ tar -t -f abc.tar.gz ./new/abc.txt ./new/cde.txt ./new/subdir/
8. Aggiungi file agli archivi esistenti
L'opzione r può essere utilizzata per aggiungere file agli archivi esistenti, senza doverne creare di nuovi. Ecco un rapido esempio
$ tar -rv -f abc.tar abc.txt
Files cannot be added to compressed archives (gz or bzip). Files can only be added to plain tar archives.
9. Aggiungi file agli archivi compressi (tar.gz/tar.bz2)
È già stato detto che non è possibile aggiungere file agli archivi compressi. Tuttavia può ancora essere fatto con un semplice trucco. Usa il comando gunzip per decomprimere l'archivio, aggiungere il file all'archivio e comprimerlo di nuovo.
$ gunzip archive.tar.gz $ tar -rf archive.tar ./path/to/file $ gzip archive.tar
Per i file bzip usa rispettivamente i comandi bzip2 e bunzip2.
10. Backup con tar
Uno scenario reale è quello di eseguire il backup delle directory a intervalli regolari. Il comando tar può essere programmato per eseguire tali backup tramite cron. Ecco un esempio -
$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/
Esegui il comando sopra tramite cron e continuerebbe a creare file di backup con nomi come -
'archive-20150218.tar.gz'.
Ovviamente assicurati che lo spazio su disco non sia sovraffollato con archivi sempre più grandi.
11. Verifica i file di archivio durante la creazione
L'opzione "W" può essere utilizzata per verificare i file dopo aver creato gli archivi. Ecco un rapido esempio.
$ tar -cvW -f abc.tar ./new/ ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/newfile.txt ./new/abc.txt Verify ./new/ Verify ./new/cde.txt Verify ./new/subdir/ Verify ./new/subdir/in.txt Verify ./new/newfile.txt Verify ./new/abc.txt
Si noti che la verifica non può essere eseguita su archivi compressi. Funziona solo con archivi tar non compressi.
Conclusione
Oltre al comando tar, ci sono molti altri comandi disponibili sulla riga di comando di Linux che possono essere usati per comprimere e comprimere i file in un archivio. Ad esempio il comando zip e unzip può essere utilizzato anche per creare archivi compressi.
Il comando zip supporta anche il comando zipcloak che può essere utilizzato per creare archivi .zip protetti da password. Il formato tar non supporta alcun tipo di crittografia. Se desideri creare archivi tar protetti da password, utilizza ccrypt comando per crittografare il file .tar o .tar.gz.
È tutto per ora. Per ulteriori informazioni controlla la pagina man per il comando tar, con "man tar". Oppure esegui "tar --help" per vedere l'elenco di tutte le opzioni supportate dal comando tar.