Tar è il comando più utilizzato nei sistemi operativi Unix e Linux per creare archivi di più file e cartelle in un unico file di archivio e tale file di archivio può essere ulteriormente compresso utilizzando gzip e bzip2 tecniche. In altre parole, possiamo dire che il comando tar viene utilizzato per eseguire il backup archiviando più file e directory in un unico file tar o archivio e successivamente è possibile estrarre file e directory dal file compresso tar.
In questo articolo, discuteremo del comando tar di Linux con 17 esempi utili
Sintassi del comando tar:
# tar
Alcune delle opzioni comunemente usate nel comando tar sono elencate di seguito:
Nota : trattino ( – ) nelle opzioni del comando tar sono opzionali.
Esempio 1) Creare un file di archivio tar
Creiamo un file tar della directory /etc e il file '/root/anaconda-ks.cfg'.
[[email protected] ~]# tar -cvf myarchive.tar /etc /root/anaconda-ks.cfg
Il comando precedente creerà un file tar con il nome "myarchive ” nella cartella corrente. Il file Tar contiene tutti i file e le directory di /etc cartella e anaconda-ks.cfg file.
Nel comando tar '-c ' opzione specifica per creare un file tar, '-v' viene utilizzato per l'output dettagliato e "-f" viene utilizzata per specificare il nome del file di archivio.
[[email protected] ~]# ls -l myarchive.tar -rw-r--r--. 1 root root 22947840 Sep 7 00:24 myarchive.tar [[email protected] ~]#
Esempio 2) Elenca il contenuto del file di archivio
Usando '–t ' opzione nel comando tar possiamo visualizzare il contenuto dei file tar senza estrarlo.
[[email protected] ~]# tar -tvf myarchive.tar
Elencare un file o una directory specifica dal file tar. Nell'esempio seguente sto cercando di vedere se il file "anaconda-ks.cfg" è presente nel file tar o meno.
[[email protected] ~]# tar -tvf myarchive.tar root/anaconda-ks.cfg -rw------- root/root 953 2016-08-24 01:33 root/anaconda-ks.cfg [[email protected] ~]#
Esempio 3) Aggiungi o aggiungi file alla fine dell'archivio
'-r L'opzione ' nel comando tar viene utilizzata per aggiungere o aggiungere file al file tar esistente. Aggiungiamo il file /etc/fstab in 'data.tar '
[[email protected] ~]# tar -rvf data.tar /etc/fstab
Nota: Nel file tar compresso non possiamo aggiungere file o directory.
Esempio 4) Estrarre file e directory dal file di archivio
'-x L'opzione 'è usata per estrarre i file e le directory dal file di archivio tar. Estraiamo il contenuto del file tar creato sopra.
[[email protected] ~]# tar -xvf myarchive.tar
Il comando precedente estrarrà tutti i file e le directory del file tar myarchive nella directory di lavoro corrente.
Esempio 5) Estrarre il file di archivio tar in una cartella particolare
Nel caso in cui desideri estrarre il file tar in una cartella o directory particolare, usa "-C ' opzione seguita dal percorso di una cartella. L'esempio è mostrato di seguito
[[email protected] ~]# tar -xvf myarchive.tar -C /tmp/
Esempio 6) Estrarre un file o una directory particolare dal file tar
Supponiamo che tu voglia estrarre solo il file anaconda-ks.cfg dal file tar nella cartella /tmp.
Sintassi :
# tar –xvf {tar-file } {file-da-estrarre } -C {percorso-dove-estrarre}
[[email protected] tmp]# tar -xvf /root/myarchive.tar root/anaconda-ks.cfg -C /tmp/ root/anaconda-ks.cfg [[email protected] tmp]# ls -l /tmp/root/anaconda-ks.cfg -rw-------. 1 root root 953 Aug 24 01:33 /tmp/root/anaconda-ks.cfg [[email protected] tmp]#
Esempio 7) Creare e comprimere file di archivio (gzip)
Supponiamo di voler creare un file tar della cartella /etc e /opt e di volerlo anche comprimere usando lo strumento gzip. Questo può essere ottenuto usando "-z ' opzione nel comando tar. Le estensioni di tali file tar saranno tar.gz o .tgz
[[email protected] ~]# tar -zcpvf myarchive.tar.gz /etc/ /opt/ Or [[email protected] ~]# tar -zcpvf myarchive.tgz /etc/ /opt/
Esempio 8) Creare e comprimere file di archivio (bzip2)
Supponiamo di voler creare un file tar compresso (bzip2) della cartella /etc e /opt. Questo può essere ottenuto utilizzando l'opzione ( -j ) nel comando tar. Le estensioni di tali file tar saranno tar.bz2 o .tbz
[[email protected] ~]# tar -jcpvf myarchive.tar.bz2 /etc/ /opt/ Or [[email protected] ~]# tar -jcpvf myarchive.tbz2 /etc/ /opt/
Esempio 9) Escludi file o digita particolari durante la creazione del file tar
Usando “–escludi ” opzione nel comando tar possiamo escludere il particolare file o tipo di file durante la creazione del file tar. Supponiamo di voler escludere il tipo di file html durante la creazione del file tar compresso.
[[email protected] ~]# tar -zcpvf myarchive.tgz /etc/ /opt/ --exclude=*.html
Esempio 10) Elenca il contenuto del file tar.gz o .tgz
Il contenuto del file tar con estensione tar.gz o .tgz viene visualizzato utilizzando l'opzione '-t '. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -tvf myarchive.tgz | more ............................................. drwxr-xr-x root/root 0 2016-09-07 08:41 etc/ -rw-r--r-- root/root 541 2016-08-24 01:23 etc/fstab -rw------- root/root 0 2016-08-24 01:23 etc/crypttab lrwxrwxrwx root/root 0 2016-08-24 01:23 etc/mtab -> /proc/self/mounts -rw-r--r-- root/root 149 2016-09-07 08:41 etc/resolv.conf drwxr-xr-x root/root 0 2016-09-06 03:55 etc/pki/ drwxr-xr-x root/root 0 2016-09-06 03:15 etc/pki/rpm-gpg/ ..........................................................
Esempio 11) Elenca il contenuto del file tar.bz2 o .tbz2
Il contenuto del file tar con estensione .bz2 o .tbz2 viene visualizzato utilizzando l'opzione '-t'. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -tvf myarchive.tbz2 | more ........................................................ rwxr-xr-x root/root 0 2016-08-24 01:25 etc/pki/java/ drwxr-xr-x root/root 0 2016-09-06 02:54 etc/pki/nssdb/ -rw-r--r-- root/root 65536 2010-01-12 15:09 etc/pki/nssdb/cert8.db -rw-r--r-- root/root 9216 2016-09-06 02:54 etc/pki/nssdb/cert9.db -rw-r--r-- root/root 16384 2010-01-12 16:21 etc/pki/nssdb/key3.db -rw-r--r-- root/root 11264 2016-09-06 02:54 etc/pki/nssdb/key4.db -rw-r--r-- root/root 451 2015-10-21 09:42 etc/pki/nssdb/pkcs11.txt -rw-r--r-- root/root 16384 2010-01-12 15:45 etc/pki/nssdb/secmod.db drwxr-xr-x root/root 0 2016-08-24 01:26 etc/pki/CA/ drwxr-xr-x root/root 0 2015-06-29 08:48 etc/pki/CA/certs/ drwxr-xr-x root/root 0 2015-06-29 08:48 etc/pki/CA/crl/ drwxr-xr-x root/root 0 2015-06-29 08:48 etc/pki/CA/newcerts/ drwx------ root/root 0 2015-06-29 08:48 etc/pki/CA/private/ drwx------ root/root 0 2015-11-20 06:34 etc/pki/rsyslog/ drwxr-xr-x root/root 0 2016-09-06 03:44 etc/pki/pulp/ ..............................................................
Esempio 12) Estrai file di archivio compresso (tar.gz o .tgz)
i file tar con estensione tar.gz o .tgz vengono estratti o decompressi con l'opzione '-x ' e '-z '. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -zxpvf myarchive.tgz -C /tmp/
Il comando sopra estrarrà il file tar nella cartella /tmp.
Nota : Ora un comando days tar si prenderà cura dei tipi di file di compressione automaticamente durante l'estrazione, significa che è facoltativo per noi specificare il tipo di compressione nel comando tar. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -xpvf myarchive.tgz -C /tmp/
Esempio 13) Estrarre o decomprimere i file tar.bz2 o .tbz2
i file tar con estensione tar.bz2 o .tbz2 vengono estratti con l'opzione '-j ' e '-x '. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -jxpvf myarchive.tbz2 -C /tmp/
Oppure
[[email protected] ~]# tar xpvf myarchive.tbz2 -C /tmp/
Esempio 14) Pianificazione del backup con il comando tar
Ci sono alcuni scenari in tempo reale in cui dobbiamo creare file tar di file e directory particolari a scopo di backup su base giornaliera. Supponiamo di dover eseguire il backup dell'intera cartella /opt su base giornaliera, questo può essere ottenuto creando un cron job del comando tar. L'esempio è mostrato di seguito:
[[email protected] ~]# tar -zcvf optbackup-$(date +%Y-%m-%d).tgz /opt/
Crea un lavoro cron per il comando precedente.
Esempio 15) Creare e comprimere un file di archivio con l'opzione -T e -X
Ci sono alcuni scenari in tempo reale in cui vogliamo che il comando tar prenda input da un file e quel file sarà costituito dal percorso di file e directory che devono essere archiviati e compressi, potrebbero esserci dei file che vorremmo escludere nell'archivio che sono menzionati nel file di input.
Nel file di input del comando tar è specificato dopo '-T L'opzione e il file che consiste nell'elenco di esclusione sono specificati dopo '-X ' opzione.
Supponiamo di voler archiviare e comprimere le directory come /etc , /opt e /casa e vuoi escludere il file '/etc/sysconfig/kdump' e '/etc/sysconfig/foreman ', Crea un file di testo '/root/tar-include ' e '/root/tar-exclude ' e inserisci i seguenti contenuti nel rispettivo file.
[[email protected] ~]# cat /root/tar-include /etc /opt /home [[email protected] ~]# [[email protected] ~]# cat /root/tar-exclude /etc/sysconfig/kdump /etc/sysconfig/foreman [[email protected] ~]#
Ora esegui il comando seguente per creare e comprimere il file di archivio.
# tar zcpvf mybackup-$(date +%Y-%m-%d).tgz -T /root/tar-include -X /root/tar-exclude
Esempio 16) Visualizza la dimensione del file .tar , .tgz e .tbz2
Usa i comandi seguenti per visualizzare le dimensioni dei file tar e tar compressi.
[[email protected] ~]# tar -czf - data.tar | wc -c 427 [[email protected] ~]# tar -czf - mybackup-2016-09-09.tgz | wc -c 37956009 [[email protected] ~]# tar -czf - myarchive.tbz2 | wc -c 30835317 [[email protected] ~]#
Esempio 17) Dividi il file tar grande in file più piccoli
In Linux, come il sistema operativo, il file grande viene diviso o diviso in file più piccoli usando il comando split. Il file tar grande può anche essere diviso in parti più piccole usando il comando dividi.
Supponiamo di voler dividere "mybackup-2016-09-09.tgz ' file in parti più piccole di ogni 6 MB.
Sintassi : split -b
[[email protected] ~]# split -b 6M mybackup-2016-09-09.tgz mybackup-parts
Il comando precedente dividerà il file tar compresso di mybackup nei file più piccoli ciascuno di dimensioni 6 MB nella directory di lavoro corrente e i nomi dei file divisi inizieranno da mybackup-partsaa … mybackup-partsag. Nel caso in cui desideri aggiungere numeri al posto degli alfabeti, usa l'opzione '-d' nel comando suddetto diviso.
[[email protected] ~]# ls -l mybackup-parts* -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaa -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsab -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsac -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsad -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsae -rw-r--r--. 1 root root 6291456 Sep 10 03:05 mybackup-partsaf -rw-r--r--. 1 root root 637219 Sep 10 03:05 mybackup-partsag [[email protected] ~]#
Ora possiamo spostare questi file in un altro server sulla rete e quindi possiamo unire tutti i file in un unico file compresso tar usando il comando menzionato di seguito.
[[email protected] ~]# cat mybackup-partsa* > mybackup-2016-09-09.tgz [[email protected] ~]#
Questo è tutto, spero che ti piacciano diversi esempi di comando tar. Si prega di condividere feedback e commenti.
Leggi anche : Come automatizzare le attività in Linux utilizzando Crontab
Leggi anche : 9 esempi di comandi "diff" in Linux