Come decomprimere un file tar.gz
Se usi software open source, è probabile che prima o poi incontrerai un file .tar. L’utilità di archiviazione tar open source esiste dal 1979 , quindi è veramente onnipresente nel mondo POSIX. Il suo scopo è semplice: prende uno o più file e li “avvolge” in un file autonomo, chiamato archivio su nastro perché quando è stato inventato tar era usato per posizionare i dati nastri di archiviazione.
Le persone che non conoscono il formato tar di solito lo equiparano a un file .zip, ma un archivio tar in particolare non è compresso. Il formato tar crea solo un contenitore per i file, ma i file possono essere compressi con utilità separate. Le compressioni comuni applicate a un file .tar sono Gzip, bzip2 e xz. Ecco perché raramente vedi solo un file .tar e più comunemente incontri file .tar.gz o .tgz.
Installazione di tar
Su Linux, BSD, Illumos e persino Mac OS, il comando tar è già installato per te.
Su Windows, il modo più semplice per gestire i file .tar è insta l ‘utility 7-Zip open source LGPL. Il suo nome implica che è “un’utilità zip, ma funziona anche con archivi tar e fornisce anche comandi per l’interfaccia della riga di comando cmd.
Se si desidera davvero un’utilità tar effettiva su Windows, GNU tar è installabile tramite WSL su Windows 10 o tramite Cygwin.
Creazione di un tarball
Un archivio tar viene spesso definito tarball, presumibilmente perché noi hacker amiamo abbreviare le parole a poche sillabe possibile, e “tarball” è più breve e più facile di “tar archive”.
In una GUI, la creazione di un tarball è, al massimo, un processo in tre fasi. Sto usando KDE, ma il processo è essenzialmente lo stesso su Gnome o XFCE:
- Crea una directory
- Posiziona i tuoi file nella directory
- Fai clic con il tasto destro sulla directory e seleziona “Comprimi”
compress.jpg
Creare un tarball
In una shell, è fondamentalmente lo stesso processo.
Per raccogliere un gr oup di file in un archivio, posizionare i file in una directory e quindi invocare tar, fornendo un nome per l’archivio che si desidera creare e la directory che si desidera archiviare:
L’utilità tar è unica tra i comandi, perché non richiede trattini davanti alle sue opzioni brevi, consentendo agli utenti esperti di abbreviare comandi complessi come questo:
Non è necessario mettere i file in una directory prima di archiviarli, ma non è considerata una cattiva etichetta, perché nessuno vuole che 50 file vengano sparsi sul desktop quando disarchivia una directory. Questi tipi di archivi sono talvolta chiamati tarbomb, sebbene non sempre con una connotazione negativa. I tarbomb sono utili per patch e installatori di software; è solo questione di sapere quando usarli e quando evitarli.
Compressione di archivi
La creazione di un archivio tar non comprime i file, li rende semplicemente più facili da muoversi come un unico blob. Per la compressione, puoi fare in modo che tar chiami Gzip o bzip:
$ tar --create --bzip2 --file foo.tar.bz2 myfiles
$ tar --create --gzip --file foo.tar.gz myfiles
Le estensioni comuni sono tar.gz e .tgz per un tar compresso con Gzip file e .tbz e .tar.bz2 per un file tar bzippato.
Estrazione di archivi
Se hai ricevuto un tarball da un amico o da un progetto software, puoi estrarre nel desktop della GUI o in una shell. In una GUI, fai clic con il pulsante destro del mouse sull’archivio che desideri estrarre e seleziona “Estrai”.
extract_0.jpg
Estrazione di un archivio
Il file manager Dolphin offre una funzionalità per rilevare automaticamente se i file estratti da un archivio sono contenuti in una directory o se è necessario creare una nuova directory per essi. Uso questa opzione in modo che quando estraggo i file da un tarbomb, rimangano ordinati e contenuti.
In una shell, il comando per estrarre un archivio è piuttosto intuitivo:
Gli utenti esperti abbreviano questo a:
Puoi anche usare l’utilità tar per decomprimere i file .zip:
Tar avanzato
Le utilità tar sono molto robuste e flessibili. Una volta che sei a tuo agio con le basi, è utile esplorare altre funzionalità.
Aggiungi un file o una directory a un tarball esistente
Se hai un tarball esistente e vuoi aggiungi un nuovo file, non devi rimuovere tutto dall’archivio solo per aggiungere un nuovo file.
La maggior parte dei desktop Linux e BSD sono dotati di un’utilità di archiviazione grafica. Usandola, puoi aprire un archivio tar come se fosse qualsiasi altra directory, dai un’occhiata all’interno, estrai singoli file, aggiungici file e persino visualizza in anteprima i file di testo e le immagini che contiene.
ark.jpg
L’utilità di archiviazione Ark
Nella shell, puoi aggiungere un file o una directory a un archivio tar purché non sia compresso. Se il tuo archivio è stato compresso, devi decomprimerlo, ma non è necessario estrarlo dall’archivio.
Ad esempio, se un archivio è stato compresso con Gzip:
$ gunzip archive.tar.gz
$ ls
archive.tar
Ora che hai un archivio tar non compresso, aggiungi un file e una directory ad esso:
$ tar --append --file archive.tar foo.txt
$ tar --append --file archive.tar bar/
La versione più breve:
$ tar rf archive.tar foo.txt
$ tar rf archive.tar bar/
Visualizza un elenco di file all’interno di un tarball
Per vedere i file in un archivio, compressi o non compressi, usa il – opzione elenco:
$ tar --list --file archive.tar.gz
myfiles/
myfiles/one
myfiles/two
myfiles/three
bar/
bar/four
foo.txt
Gli utenti esperti abbreviano questo a:
Estrarre solo uno file o directory
A volte non hai bisogno di tutti i file in un archivio, ne vuoi solo estrarre uno o due. Dopo aver elencato il contenuto di un archivio tar, usa il solito comando tar extract insieme al percorso del file che desideri estrarre:
$ tar xvf archive.tar.gz bar/four
bar/four
L’estrazione di più file o directory è praticamente la stessa:
$ tar xvf archive.tar.gz myfiles/one bar/four
myfiles/one
bar/four
Puoi anche usare i caratteri jolly:
$ tar xvf archive.tar.gz --wildcards "*.txt"
foo.txt
Estrai un tarball in un’altra directory
In precedenza, ho detto che alcuni tarball erano tarbomb rimasti file sparsi per il computer. Se elenchi un archivio tar e vedi che i suoi file non sono contenuti in una directory, puoi creare una directory di destinazione per loro:
$ tar --list --file archive.tar.gz
foo
bar
baz
$ mkdir newfiles
$ tar xvf archive.tar.gz -C newfiles
Questo inserisce tutto i file nell’archivio ordinatamente nella directory “newfiles”.
L’opzione directory di destinazione è utile per molto di più che mantenere in ordine i file estratti, ad esempio, distribuire file che devono essere copiati in un struttura di directory esistente. Se stai lavorando su un sito web e desideri inviare all’amministratore alcuni nuovi file, puoi farlo in diversi modi. Il modo più ovvio è inviare i file tramite e-mail all’amministratore del sito insieme a un testo che spiega dove deve essere ogni file collocato: “Il file index.php allegato va in /var/www/example.com/store, e il file vouchers.php va in /var/www/example.com/deals …”
Il modo più efficiente sarebbe creare un archivio tar:
Data questa struttura, l’amministratore del sito potrebbe estrarre il tuo archivio in entrata direttamente nella directory principale del server. L’utilità tar rileva automaticamente l’esistenza di /var/www/example.com così come l’archivio delle sottodirectory, i contratti e le immagini e distribuisce i file nelle directory appropriate. È un’operazione di copia e incolla in blocco, eseguita rapidamente e facilmente.
GNU tar e BSD tar
Il formato tar è solo un formato, ed è un formato aperto, quindi può essere creato da più di un solo strumento.
Ci sono due utilità tar comuni: l’utilità tar GNU, installata per impostazione predefinita sui sistemi Linux, e l’utilità tar BSD, installata per impostazione predefinita su BSD, Mac OS e alcuni sistemi Linux. Per uso generale, entrambi tar. Tutti gli esempi in questo articolo funzionano allo stesso modo su GNU o BSD tar, per esempio. Tuttavia, le due utilità presentano alcune piccole differenze, quindi una volta che ti sei familiarizzato con una, dovresti provare l’altra.
Probabilmente dovrai installare l ‘”altro” tar (qualunque cosa per evitare confusione tra le utilità, GNU tar è spesso chiamato gtar e BSD tar è chiamato bsdtar, con il comando tar che è un collegamento simbolico, o un alias, a quello preinstallato sul computer.