GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec la commande Tar

Qu'est-ce que le goudron ? Tar signifie «archive sur bande» et fait référence à une pratique des premiers jours de l'informatique lorsque les données étaient sauvegardées sur des bandes. Malgré l'origine nostalgique du nom, tar est très puissant et utilise des technologies modernes pour archiver et compresser les fichiers.

Actualiser les bases :Archive vs Compression

La commande tar est importante à comprendre pour les utilisateurs de Linux. Avant d'entrer trop dans le vif du sujet, commençons par une petite clarification.

  • Archivage :action de stocker plusieurs fichiers dans un seul fichier.
  • Compression :action de réduire un ou plusieurs fichiers plus volumineux.

Tar est un outil d'archivage. Il crée un seul fichier à partir de plusieurs fichiers. Cela permet d'économiser de la bande passante réseau, du temps et de la puissance de traitement lors du transfert des fichiers. Un seul fichier de 100 Mo prend beaucoup moins de temps que le transfert de 100 fichiers de 1 Mo en raison de la surcharge de fichiers.

C'est pourquoi vous trouverez souvent des logiciels disponibles dans une "tarball ‘. Tarball est le terme commun utilisé pour un fichier tar.

Bien que tar lui-même ne puisse pas compresser les fichiers, vous pouvez utiliser l'un des algorithmes de compression courants pour compresser les fichiers lors de la création d'une archive tar. Je vous montrerai comment faire cela plus tard dans ce didacticiel de base sur le tar.

Fichiers tar communs

Voici quelques-uns des "fichiers tar" courants que vous trouverez :

.tar :Il s'agit d'un fichier tarball. Il s'agit uniquement d'une archive et aucune compression n'est effectuée.

.Tar.Gz ou .tgz :Il s'agit de l'extension d'une archive qui a été compressée avec Gzip.

.Tar.Bz2 ou .tbz :C'est l'extension d'une archive qui a été compressée avec Bz2. Il s'agit d'une technologie relativement nouvelle. Il présente un taux de compression plus élevé, mais cette puissance de rétrécissement accrue signifie qu'il faut un peu plus de temps pour terminer.

.Tar.xz ou .txz, etc. :Tar propose également une prise en charge intégrée de xz, lzip, etc. Ces outils utilisent principalement le même algorithme de compression, LZMA. Le populaire 7z qui est devenu assez courant dans les environnements Windows utilise également cet algorithme. D'autres différences dans les fichiers résultent de la structure et des métadonnées. Je n'entrerai pas dans ces détails dans nos exemples, mais je voulais les mentionner.

Il est important de se rappeler que les extensions ne sont pas nécessaires sur Linux et d'autres systèmes basés sur Unix. Votre système Unix peut généralement identifier les fichiers par leurs en-têtes, quelle que soit leur extension, mais l'utilisation du schéma de dénomination commun peut aider à éviter toute confusion. Vous pouvez utiliser la commande file sous Linux pour connaître le type d'un fichier.

Exemples de commandes Tar

Pour cet article, je souhaite démontrer certaines des méthodes courantes d'archivage et de compression de fichiers à l'aide de tar.

J'ai rassemblé des fichiers de différents types dans mon dossier Documents. Il existe des images de stock et des fichiers texte. Nous verrons comment la taille du fichier est modifiée par la compression à travers plusieurs exemples.

Voici une liste complète des documents qui seront utilisés.

[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

J'ai déjà abordé les capacités de tar. C'est un outil puissant avec beaucoup d'options. Les différentes options et types de fichiers peuvent rendre la commande plus compliquée qu'elle ne l'est réellement. Comme toujours, mon objectif est de démystifier la ligne de commande. Décomposons donc les choses en plus petits morceaux avant de combiner plusieurs options dans les exemples.

Voici un tableau des options couramment utilisées. Gardez à l'esprit que ce n'est que le début. Je vous recommande de parcourir vous-même la documentation d'aide pour trouver encore plus de possibilités une fois que vous vous sentez à l'aise.

Changer Options étendues Description
-c, –créer créer une nouvelle archive
-d, –diff, –compare trouver les différences entre l'archive et le système de fichiers
-r, –ajouter ajouter des fichiers à la fin d'une archive
-t, –liste lister le contenu d'une archive
-u, –mise à jour ajouter uniquement les fichiers plus récents que copier dans l'archive
-x, –extraire, –obtenir extraire des fichiers d'une archive
-j, –bzip2 filtrer l'archive via bzip2
-z, –gzip, –gunzip, –ungzip filtrer l'archive via gzip

1) Créer une archive tar

Plus tôt, j'ai mentionné les types de fichiers courants associés à la commande tar. C'est peut-être le plus basique.

tar cvf output_tarball.tar source_directory

La compression ne sera pas appliquée afin que le fichier occupe au moins autant d'espace que les fichiers dans le dossier des documents.

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

tar cvf (create, verbose, file-archive) :il crée un nouveau fichier tar nommé doc.tar à partir de tous les fichiers dans ~/Documents.

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

Notez que l'archive aura la même structure de répertoires que votre répertoire source de l'archive.

2) Créer une archive gzip

Essayons la compression gzip lors de la création de l'archive.

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

tar cvzf (create, verbose, g-zip, file-archive) :il crée un nouveau fichier tar nommé doc.tar.gz à partir de tous les fichiers dans ~/Documents. Il utilise la compression gzip (avec l'option z) lors de la création de l'archive.

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

Comme vous pouvez le constater, la taille de l'archive compressée avec gzip est inférieure de 54 862 octets (53 Mo) à celle d'une archive tar normale non compressée.

Faites attention lorsque vous utilisez un trait d'union - avec les options tar

Habituellement, lorsque vous utilisez des options avec une commande Linux, vous ajoutez un trait d'union (-) avant les options.
Le trait d'union avant les options n'est pas obligatoire et il vaut mieux l'éviter. C'est pourquoi je ne l'ai pas utilisé dans les exemples.
Si vous utilisez un trait d'union avant les options, vous devez toujours conserver le f à la fin des options. Si vous utilisez tar -cvfz, le z devient un argument pour l'option z. Et puis vous verrez une erreur comme celle-ci :

tar :doc.tar.gz :impossible de stat :aucun fichier ou répertoire de ce type

C'est pourquoi il est recommandé d'utiliser l'option f à la fin de toutes les autres options afin que même si vous utilisez un trait d'union par habitude, cela ne créera pas de problème.

3) Créer une archive bz2

Supposons que vous souhaitiez créer une archive tar bz2. Les étapes sont les mêmes que la précédente. Il suffit de changer l'option z (gzip) en j (bz2). Reportez-vous au tableau des options que j'ai mentionné plus tôt.

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

tar cvfj (création, verbeux, type bz2, fichier-archive).

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

Remarquez la taille? C'est encore moins que le tarball gzippé.

4) Lister le contenu d'un tarball

Vous pouvez utiliser le -t option (au lieu de -c) pour afficher le contenu d'un fichier d'archive. Cela fonctionne de la même manière que le fichier soit compressé ou non. Il indiquera la taille réelle du fichier, pas la taille compressée.

[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) Ajouter d'autres fichiers à une archive tar

Vous pouvez ajouter des fichiers à une archive tarball en utilisant -r . Vous ne pouvez pas ajouter de fichiers à une archive compressée sans les extraire au préalable à l'aide de la commande tar.

Vous pouvez également ajouter en utilisant le -u possibilité de mise à jour. Cette option est censée ajouter uniquement les nouveaux fichiers selon les documents d'aide, mais dans ma pratique, cela fonctionnait de la même manière que l'ajout, en ajoutant de nouvelles copies de tous les fichiers.

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

6) Extraire une archive tar

Maintenant que vous avez vu comment les différents types de compression affectent la taille globale du fichier, examinons comment extraire ces fichiers.

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

J'ai changé dans un nouveau répertoire appelé docs. Ensuite, j'ai utilisé tar xvf (extract, verbose, file-archive) pour décompresser le contenu ici.

[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

Il est important de noter que tar conserve la structure des fichiers, donc lorsque j'extrait les fichiers, ils se trouvent dans /home/christopher/Documents. Pour éviter cela, vous pouvez basculer vers le répertoire souhaité (~/Documents) et copier tous les fichiers en utilisant le caractère générique * au lieu de la structure du répertoire.

7) Extrayez l'archive tar dans un répertoire spécifique

Par défaut, le contenu d'une archive tar est extrait dans le répertoire courant. Ce n'est pas toujours souhaitable.

Vous pouvez extraire une archive tar dans un répertoire spécifique de la manière suivante :

tar xvf tar_file -C destination_directory

Le répertoire de destination doit exister, alors assurez-vous d'utiliser la commande mkdir pour en créer un au préalable.

Résumé

Voici ce que vous devez garder à l'esprit lorsque vous utilisez tar sous Linux :
Il est presque toujours utilisé au format tar cf ou tar xvf. Souvenez-vous de ceci :

  • c signifie create :vous l'utilisez pour créer une archive tar
  • x signifie extract :vous l'utilisez pour extraire une archive tar
  • f signifie fichier :vous l'utilisez pour le nom du fichier tar (à la fois pour la création ou l'extraction). Essayez de l'utiliser à la fin des options.
  • v signifie verbeux :c'est facultatif mais cela montre ce qui se passe avec la commande.

    Bien sûr, vous ne pouvez pas utiliser les options c et x dans la même commande tar.

Conclusion

Avez-vous apprécié notre guide de la commande tar ? J'espère que tous ces conseils vous ont appris quelque chose de nouveau.

Si vous aimez ce guide, partagez-le sur les réseaux sociaux. Si vous avez des commentaires ou des questions, laissez-les ci-dessous.

Si vous avez des suggestions de sujets que vous aimeriez voir abordés, n'hésitez pas à les laisser également. Merci d'avoir lu.


Linux
  1. Premiers pas avec Zsh

  2. Premiers pas avec la commande Linux tac

  3. Démarrer avec ls

  4. Premiers pas avec PostgreSQL sous Linux

  5. Premiers pas avec Multipass - Exécution de machines virtuelles Ubuntu

Premiers pas avec GIT sous Linux

Premiers pas avec UFW (pare-feu non compliqué) sur Ubuntu 20.04

Premiers pas avec systemctl

Premiers pas avec cPanel

Premiers pas avec la commande SED [Guide du débutant]

Premiers pas avec la commande AWK [Guide du débutant]