Come comprimere ed estrarre file utilizzando il comando tar su Linux
- Chris Hoffman
@chrisbhoffman
- 10 aprile 2016 , 6:40 am EDT
Il comando tar su Linux è spesso usato per creare file di archivio .tar.gz o .tgz, chiamati anche “tarball”. Questo comando ha un gran numero di opzioni, ma è sufficiente ricordare alcune lettere per creare rapidamente archivi con tar. Il comando tar può anche estrarre gli archivi risultanti.
Il comando GNU tar incluso con Linux distributions ha la compressione integrata. Può creare un archivio .tar e quindi comprimerlo con la compressione gzip o bzip2 in un unico comando. Ecco perché il file risultante è un file .tar.gz o .tar.bz2.
Comprimi unintera directory o un singolo file
Usa il seguente comando per comprimere unintera directory o un singolo file su Linux. Comprimerà anche ogni altra directory allinterno di una directory specificata, in altre parole , funziona in modo ricorsivo.
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
Ecco cosa significano effettivamente questi parametri:
- -c: Crea un archivio.
- -z: comprime larchivio con gzip.
- -v: mostra lavanzamento nel terminale durante la creazione dellarchivio, noto anche come modalità “verbose”. La v è sempre facoltativa in questi comandi, ma è utile.
- -f: consente di specificare il nome del file dellarchivio.
Supponiamo che tu abbia una directory denominata “stuff” nella directory corrente e desideri salvarla in un file denominato archive.tar.gz. Dovresti eseguire il seguente comando:
tar -czvf archive.tar.gz stuff
Oppure, supponiamo che ci sia una directory in / usr / local / qualcosa sul sistema corrente e desideri comprimerla in un file chiamato archive.tar.gz. Dovresti eseguire il seguente comando :
tar -czvf archive.tar.gz /usr/local/something
Comprimi più directory o file contemporaneamente
CORRELATI: Come gestire i file dal terminale Linux: 11 comandi necessari Sapere
Sebbene tar sia spesso utilizzato per comprimere una singola directory, potresti anche usarlo per comprimere più directory, più file singoli o entrambi. Fornisci semplicemente un elenco di file o directory invece di uno solo. Ad esempio, supponiamo che tu voglia comprimere / home / ubuntu / Do la directory wnloads, la directory / usr / local / stuff e il file /home/ubuntu/Documents/notes.txt. Dovresti semplicemente eseguire il seguente comando:
tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
Elenca tutte le directory o i file di cui desideri eseguire il backup.
Escludi Directory e file
In alcuni casi, potresti voler comprimere unintera directory, ma non includere determinati file e directory. Puoi farlo aggiungendo unopzione --exclude
per ogni directory o file che desideri escludere.
Ad esempio, supponiamo vuoi comprimere / home / ubuntu, ma non vuoi comprimere le directory / home / ubuntu / Downloads e /home/ubuntu/.cache. Ecco come faresti:
tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
Lo switch --exclude
è molto potente. Non accetta nomi di directory e file: in realtà accetta modelli. Cè molto di più che puoi fare con esso. Ad esempio, puoi archiviare unintera directory ed escludere tutti i file .mp4 con il seguente comando:
tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4
Utilizza invece la compressione bzip2
Mentre la compressione gzip è più frequentemente utilizzata per creare file .tar.gz o .tgz, tar supporta anche la compressione bzip2. Ciò consente di creare file compressi con bzip2, spesso denominati .tar.bz2, .tar.bz o .tbz. Per farlo, basta sostituire -z per gzip nei comandi qui con un -j per bzip2.
Gzip è più veloce, ma generalmente si comprime un po meno, quindi ottieni un file leggermente più grande. Bzip2 è più lento, ma comprime un po di più, quindi ottieni un file leggermente più piccolo. Gzip è anche più comune, con alcuni sistemi Linux ridotti al minimo che includono il supporto gzip per impostazione predefinita, ma non il supporto bzip2. In generale, tuttavia, gzip e bzip2 sono praticamente la stessa cosa ed entrambi funzioneranno in modo simile.
Ad esempio, invece del primo esempio che abbiamo fornito per la compressione della directory stuff, dovresti eseguire il seguente comando:
tar -cjvf archive.tar.bz2 stuff
Estrai un archivio
Una volta che hai un archivio, puoi estrarlo con il comando tar. Il seguente comando estrarrà il contenuto di archive.tar.gz nella directory corrente.
tar -xzvf archive.tar.gz
È lo stesso del comando di creazione dellarchivio che abbiamo usato sopra, tranne lopzione -x
sostituisce lopzione -c
. Questo specifica che vuoi estrarre un archivio invece di crearne uno.
Potresti voler estrarre il contenuto dellarchivio in una directory specifica. Puoi farlo aggiungendo lopzione -C
alla fine del comando. Ad esempio, il seguente comando estrarrà il contenuto del file archive.tar.gz nella directory / tmp.
tar -xzvf archive.tar.gz -C /tmp
Se il file è un file compresso con bzip2, sostituire la “z” nei comandi precedenti con una “j”.
Questo è luso più semplice possibile del comando tar. Il comando include un gran numero di opzioni aggiuntive, quindi non possiamo elencarle tutte qui. Per maggiori informazioni. eseguire il comando info tar dalla shell per visualizzare la pagina delle informazioni dettagliate del comando tar. Al termine, premi il tasto q per uscire dalla pagina delle informazioni. Puoi anche leggere il manuale di tar in linea.
Se stai usando un desktop Linux grafico, puoi anche usare lutilità di compressione file o il file manager incluso con il desktop per creare o estrarre file .tar. Su Windows, puoi estrarre e creare archivi .tar con lutility gratuita 7-Zip.
Chris Hoffman è Editor in Chief di How-To Geek. Ha scritto di tecnologia per quasi un decennio ed è stato editorialista di PCWorld per due anni. Chris ha scritto per il New York Times, è stato intervistato come esperto di tecnologia su stazioni televisive come NBC 6 di Miami e il suo lavoro testate giornalistiche come la BBC. Dal 2011, Chris ha scritto oltre 2.000 articoli che sono stati letti più di 500 milioni di volte — e questo “è solo qui su How-To Geek.Read Full Bio”