GNU/Linux >> Linux Esercitazione >  >> Linux

Guida introduttiva al comando Tar

Cos'è tar? Tar sta per "archivio su nastro" e si riferisce a una pratica dei primi tempi dell'informatica quando i dati venivano sottoposti a backup su nastro. Nonostante l'origine nostalgica del nome, tar è molto potente e utilizza le moderne tecnologie per archiviare e comprimere i file.

Aggiorna le basi:archivio e compressione

Il comando tar è importante per la comprensione degli utenti Linux. Prima di approfondire l'argomento, iniziamo con un piccolo chiarimento.

  • Archiviazione:l'atto di archiviare più file come un unico file.
  • Compressione:l'atto di ridurre uno o più file più grandi.

Tar è uno strumento di archiviazione. Crea un singolo file da più file. Ciò consente di risparmiare larghezza di banda di rete, tempo e potenza di elaborazione durante il trasferimento dei file. Un singolo file di 100 MB richiede molto meno del trasferimento di 100 file di 1 MB a causa del sovraccarico del file.

Questo è il motivo per cui spesso troverai software disponibile in un "tarball '. Tarball è il termine comune usato per un file tar.

Anche se tar stesso non può comprimere i file, puoi utilizzare uno degli algoritmi di compressione comuni per comprimere i file durante la creazione di un tarball. Ti mostrerò come farlo più avanti in questo tutorial di base sul tar.

File tar comuni

Ecco alcuni dei comuni "file tar" che troverai:

.Tar :Questo è un file tarball. È solo un archivio e non viene eseguita alcuna compressione.

.Tar.Gz o .tgz :Questa è l'estensione di un archivio che è stato compresso con Gzip.

.Tar.Bz2 o .tbz :Questa è l'estensione di un archivio che è stato compresso con Bz2. Questa è una tecnologia relativamente nuova. Presenta un rapporto di compressione più elevato, ma il maggiore potere di restringimento significa che richiede un po' più di tempo per il completamento.

.Tar.xz o .txz, ecc. :Tar include anche il supporto integrato per xz, lzip e altro. Questi strumenti utilizzano principalmente lo stesso algoritmo di compressione, LZMA. Anche il popolare 7z che è diventato abbastanza comune negli ambienti Windows utilizza questo algoritmo. Ulteriori differenze nei file derivano dalla struttura e dai metadati. Non entrerò in questi dettagli nei nostri esempi, ma volevo citarli.

È importante ricordare che le estensioni non sono necessarie su Linux e altri sistemi basati su Unix. Il tuo sistema Unix in genere può identificare i file in base alle loro intestazioni indipendentemente dall'estensione, ma l'uso dello schema di denominazione comune può aiutare a evitare confusione. Puoi usare il comando file in Linux per conoscere il tipo di file.

Esempi di comandi tar

Per questo articolo, voglio dimostrare alcuni dei metodi comuni per archiviare e comprimere i file usando tar.

Ho assemblato alcuni file di diversi tipi nella mia cartella Documenti. Ci sono immagini di stock e alcuni file di testo. Vedremo come la dimensione del file viene modificata dalla compressione attraverso diversi esempi.

Ecco un elenco completo dei documenti che verranno utilizzati.

[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x  2 christopher christopher    4096 May  5 10:55 ./
drwxr-xr-x 17 christopher christopher    4096 May  5 10:59 ../
-rw-r--r--  1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem1.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem2.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem3.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:56 lorem.txt
-rw-r--r--  1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg

Ho già parlato delle capacità di tar. È uno strumento potente con molte opzioni. Le varie opzioni e tipi di file possono far sembrare il comando più complicato di quanto non sia in realtà. Come sempre, il mio obiettivo è demistificare la riga di comando. Quindi scomponiamo le cose in pezzi più piccoli prima di combinare diverse opzioni negli esempi.

Ecco una tabella delle opzioni comunemente usate. Tieni presente che questo è solo l'inizio. Ti consiglio di consultare tu stesso la documentazione della guida per trovare ancora più possibilità una volta che ti senti a tuo agio.

Cambia Opzioni estese Descrizione
-c, –crea crea un nuovo archivio
-d, –diff, –confronta trova differenze tra archivio e file system
-r, –aggiungi aggiungi file alla fine di un archivio
-t, –elenco elenca il contenuto di un archivio
-u, –aggiornamento aggiungi solo file più recenti di copia in archivio
-x, –estrai, –ottieni estrae file da un archivio
-j, –bzip2 filtra l'archivio tramite bzip2
-z, –gzip, –gunzip, –ungzip filtra l'archivio tramite gzip

1) Crea un tarball

In precedenza ho menzionato i tipi di file comuni associati al comando tar. Questo è forse il più semplice.

tar cvf output_tarball.tar source_directory

La compressione non verrà applicata, quindi il file occuperà almeno lo stesso spazio dei file nella cartella dei documenti.

[email protected]:~$ tar cvf doc.tar ~/Documents

tar cvf (create, verbose, file-archive):crea un nuovo file tar chiamato doc.tar da tutti i file in ~/Documents.

[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May  5 11:00 doc.tar

Nota che il tarball avrà la stessa struttura di directory della directory di origine del tarball.

2) Creare un tarball gzip

Proviamo la compressione gzip durante la creazione del tarball.

[email protected]:~$ tar cvzf doc.tar.gz ~/Documents

tar cvzf (create, verbose, g-zip, file-archive):crea un nuovo file tar chiamato doc.tar.gz da tutti i file in ~/Documents. Utilizza la compressione gzip (con l'opzione z) durante la creazione del tarball.

[email protected]:~$ ll doc.tar.gz 
-rw-r--r-- 1 christopher christopher 7512498 May  5 11:01 doc.tar.gz

Come puoi vedere, la dimensione del tarball gzippato è 54862 byte (53 MB) in meno rispetto a un normale tar ball non compresso.

Fai attenzione mentre usi il trattino, con le opzioni tar

Di solito, quando usi le opzioni con un comando Linux, aggiungi un trattino (-) prima delle opzioni.
Il trattino prima delle opzioni non è obbligatorio ed è meglio evitarlo. Questo è il motivo per cui non l'ho usato negli esempi.
Se usi il trattino prima delle opzioni, dovresti sempre mantenere la f alla fine delle opzioni. Se usi tar -cvfz, z diventa un argomento per l'opzione z. E poi vedrai un errore come questo:

tar:doc.tar.gz:Impossibile stat:nessun file o directory di questo tipo

Ecco perché è buona norma utilizzare l'opzione f alla fine di tutte le altre opzioni in modo che anche se usi il trattino per abitudine, non crei problemi.

3) Crea un tarball bz2

Supponiamo di voler creare un tarball bz2. I passaggi sono gli stessi del precedente. Devi solo cambiare l'opzione z (gzip) in j (bz2). Fare riferimento alla tabella delle opzioni che avevo menzionato in precedenza.

[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents

tar cvfj (crea, dettagliato, tipo bz2, archivio file).

[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May  5 11:04 doc.tar.bz2

Notare la dimensione? È persino inferiore al tarball compresso con gzip.

4) Elenca i contenuti di un tarball

Puoi usare il -t opzione (invece di -c) per visualizzare il contenuto di un file di archivio. Funziona allo stesso modo indipendentemente dal fatto che il file sia compresso o meno. Elencherà la dimensione effettiva del file, non la dimensione compressa.

[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt

5) Aggiungi più file a un tarball

Puoi aggiungere file a un archivio tarball usando -r . Non puoi aggiungere file a un archivio compresso senza prima estrarli usando il comando tar.

Puoi anche aggiungere usando -u opzione per l'aggiornamento. Questa opzione dovrebbe aggiungere solo i nuovi file in base ai documenti di aiuto, ma nella mia pratica ha funzionato come append, aggiungendo nuove copie di tutti i file.

[email protected]:~$ tar rvf doc.tar ~/Documents/

6) Estrarre un tarball

Ora che hai visto come i diversi tipi di compressione influiscono sulla dimensione complessiva del file, diamo un'occhiata all'estrazione di quei file.

[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz 

Ho cambiato in una nuova directory chiamata docs. Quindi ho usato tar xvf (extract, verbose, file-archive) per decomprimere il contenuto qui.

[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg  lorem1.txt  lorem2.txt  lorem3.txt  lorem.txt  mountain-range-2397645.jpg

È importante notare che tar conserva la struttura dei file, quindi quando estraggo i file, sono in /home/christopher/Documents. Per evitare ciò, puoi passare alla directory desiderata (~/Documents) e copiare tutti i file utilizzando il carattere jolly * invece della struttura della directory.

7) Estrarre il tarball in una directory specifica

Per impostazione predefinita, il contenuto di un tarball viene estratto nella directory corrente. Non è sempre auspicabile.

Puoi estrarre un tarball in una directory specifica nel modo seguente:

tar xvf tar_file -C destination_directory

La directory di destinazione deve esistere, quindi assicurati di utilizzare il comando mkdir per crearne una in anticipo.

Riepilogo

Ecco cosa devi tenere a mente mentre usi tar in Linux:
È quasi sempre usato nel formato tar cf o tar xvf. Ricorda questo:

  • c sta per create:lo usi per creare un tarball
  • x sta per extract:lo usi per estrarre un tarball
  • f sta per file:lo usi per il nome del file tar (sia per la creazione che per l'estrazione). Prova ad usarlo alla fine delle opzioni.
  • v sta per verbose:è facoltativo ma mostra cosa sta succedendo con il comando.

    Ovviamente, non puoi usare entrambe le opzioni c e x nello stesso comando tar.

Conclusione

Ti è piaciuta la nostra guida al comando tar? Spero che tutti questi suggerimenti ti abbiano insegnato qualcosa di nuovo.

Se ti piace questa guida, condividila sui social media. Se hai commenti o domande, lasciali qui sotto.

Se hai suggerimenti per argomenti che vorresti vedere trattati, sentiti libero di lasciare anche quelli. Grazie per la lettura.


Linux
  1. Iniziare con Zsh

  2. Iniziare con il comando tac di Linux

  3. Iniziare con ls

  4. Iniziare con PostgreSQL su Linux

  5. Guida introduttiva a Multipass – Esecuzione di macchine virtuali Ubuntu

Iniziare con GIT su Linux

Guida introduttiva a UFW (Uncomplicated Firewall) su Ubuntu 20.04

Iniziare con systemctl

Iniziare con cPanel

Guida introduttiva al comando SED [Guida per principianti]

Guida introduttiva al comando AWK [Guida per principianti]