Su Linux, l'utilità tar è il comando comune per creare, gestire ed estrarre archivi. Usa il comando tar per raccogliere più file in un unico file di archivio.
Un archivio tar è una sequenza strutturata di metadati e dati dei file con un indice, in modo da poter estrarre singoli file.
I file possono essere compressi durante la creazione utilizzando uno degli algoritmi di compressione supportati.
Il comando tar può elencare il contenuto di un archivio senza estrarlo, e può estrarre i file originali direttamente da archivi compressi e non compressi.
-co--create: creazione file di archivio.-to--list: lista contenuto dell'archivio.-xo--extract: estrazione archivio.
Secondarie:
-vo--verbose: mostra i file che sono stati archiviati o estratti durante l'operazionetar-fo--file: Segui questa opzione con il nome del file di archivio da creare o aprire.-po--preserve-permissions: preserva i permessi del file originale quando estrai.--xattrs: abilita supporto attributo esteso.--selinux: abilita contesto di supporto SELinux.
Opzioni per selezione algoritmo:
-ao--auto-compress: algoritmo di default.-zo--gzip: Usa l'algoritmo di compressionegzip, con suffisso.tar.gz.-jo--bzip2: Usa l'algoritmo di compressionebzip2, con suffisso.tar.bz2.-Jo--xz: Usa l'algoritmo di compressionexz, con suffisso.tar.xz.
tar [options] [archive name] [file(s)_to_compress]
[user@host ~]$ tar -cf mybackup.tar myapp1.log myapp2.log myapp3.log
[user@host ~]$ ls mybackup.tar
mybackup.tar- sui file che dobbiamo comprimere dobbiamo avere almeno i permessi di scrittura o essere owner altrimenti quei file specifici non verranno compressi, esempio:
[root@host ~]\# tar -cf /root/etc-backup.tar /etc
tar: Removing leading `/' from member names[root@host ~]\# tar -tf /root/etc.tar
etc/
etc/fstab
etc/crypttab
etc/mtab
...output omitted...[root@host ~]\# mkdir /root/etcbackup
[root@host ~]\# cd /root/etcbackup
[root@host etcbackup]\# tar -tf /root/etc.tar
etc/
etc/fstab
etc/crypttab
etc/mtab
...output omitted...
[root@host etcbackup]\# tar -xf /root/etc.tar
# -p mantiene i permessi iniziali, altrimenti sará l'utente che ha estratto l'owner
[user@host scripts]\# tar -xpf /home/user/myscripts.tar
...output omitted...- compressione
gzip:
[root@host ~]# tar -czf /root/etcbackup.tar.gz /etc
tar: Removing leading `/' from member names
- compressione
bzip2:
[root@host ~]$ tar -cjf /root/logbackup.tar.bz2 /var/log
tar: Removing leading `/' from member names
- compressione
xz:
[root@host ~]$ tar -cJf /root/sshconfig.tar.xz /etc/ssh
tar: Removing leading `/' from member names
Il comando tar può determinare automaticamente quale compressione è stata utilizzata, quindi non è necessario specificare l'opzione di compressione.
# Esempio di errore
[root@host ~]\# tar -xzf /root/etcbackup.tar.xz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
# Correzione
[root@host ~]\# tar -xf /root/etcbackup.tar.xzPer decomprimere un singolo file compresso o un archivio compresso senza estrarre il contenuto, utilizza i comandi autonomi gunzip, bunzip2 e unxz :
# opzione -l serve a visualizzare l'output
[user@host ~]$ gzip -l file.tar.gz
compressed uncompressed ratio uncompressed_name
221603125 303841280 27.1% file.tar
[user@host ~]$ xz -l file.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 195.7 MiB 289.8 MiB 0.675 CRC64 file.xz