Article original : Linux tar Command – How to Compress Files in Linux
La compression de fichiers est une utilité essentielle sur toutes les plateformes. Elle vous aide à réduire la taille des fichiers et à partager des fichiers efficacement. Les fichiers compressés sont également plus faciles à copier sur des serveurs distants.
Vous pouvez également compresser des fichiers anciens et rarement utilisés et les sauvegarder pour une utilisation future, ce qui vous aide à économiser de l'espace disque.
Dans cet article, nous allons voir comment compresser des fichiers avec la commande tar sous Linux, ainsi que quelques exemples de tar en action.
Qu'est-ce que la commande tar ?
Nous utilisons la commande tar pour compresser et décompresser des fichiers depuis la ligne de commande. La syntaxe est présentée ci-dessous :
tar [flags] destinationFileName sourceFileName
La commande tar utilise les flags suivants pour personnaliser l'entrée de la commande :
| Flag | Explication | Utilisation |
|---|---|---|
| -c | Créer une nouvelle archive. | Nous utilisons ce flag chaque fois que nous devons créer une nouvelle archive. |
| -z | Utiliser la compression gzip. | Lorsque nous spécifions ce flag, cela signifie que l'archive sera créée en utilisant la compression gzip. |
| -v | Fournir une sortie verbeuse. | Fournir le flag -v affiche les détails des fichiers compressés. |
| -f | Nom du fichier d'archive. | Les noms de fichiers d'archive sont mappés en utilisant le flag -f. |
| -x | Extraire d'un fichier compressé. | Nous utilisons ce flag lorsque les fichiers doivent être extraits d'une archive. |
Comment créer une archive
Nous avons une liste des fichiers suivants que nous allons compresser avec tar.
Liste des fichiers à compresser.
Pour les compresser, nous allons utiliser tar comme ceci :
tar -czvf logs_archive.tar.gz *
Décortiquons cette commande et examinons chaque flag.
-c crée une archive.
-z utilise la compression gzip.
-v fournit les détails des fichiers qui ont été archivés.
-f crée une archive avec le nom 'logs_archive.tar.gz' comme fourni dans la commande ci-dessus.
Dans les résultats ci-dessous, nous pouvons voir que l'archive a été créée avec succès.
L'archive a été créée avec la commande fournie.
Comment supprimer des fichiers après compression
Supposons que nous ne voulons pas conserver les fichiers originaux après avoir créé une archive. Pour cela, nous pouvons utiliser le flag --remove-files.
tar -czvf logs_archive.tar.gz * --remove-files
Fichiers supprimés une fois l'archive créée
Ici, les flags -czvf fonctionnent comme démontré précédemment, mais les fichiers originaux sont également supprimés. Une fois que nous listons les fichiers, nous ne voyons que l'archive.
Comment afficher le contenu d'une archive
Vous pourriez avoir besoin de voir le contenu d'une archive sans l'extraire. Vous pouvez le faire avec le flag -t.
tar -tvf logs_archive.tar.gz
Dans cette commande, le flag -t spécifie que nous devons uniquement voir le contenu de l'archive. -f spécifie le nom du fichier et -v affiche le contenu détaillé.
Affichage du contenu d'une archive.
Comment extraire une archive
Pour extraire des fichiers d'une archive, vous utilisez le flag -x comme ceci :
tar -xzvf logs_archive.tar.gz
Décortiquons cette commande et examinons chaque flag.
-x extrait une archive.
-z spécifie que l'archive est gzip.
-v fournit les détails des fichiers qui ont été archivés.
-f extrait de l'archive nommée 'logs_archive.tar.gz'.
Extraction d'une archive.
Voici un conseil utile : les commandes qui prennent beaucoup de temps à s'exécuter peuvent continuer en arrière-plan avec &.
L'ajout de fichiers à une archive et l'extraction d'une archive peuvent prendre un certain temps. Pour garder les commandes en cours d'exécution en arrière-plan pendant que vous continuez à travailler, associez la commande avec & comme ceci :
tar -xzvf logs_archive.tar.gz &
Comment rechercher dans des fichiers de log compressés
Vous pourriez encore avoir besoin d'accéder à certains fichiers une fois qu'ils sont archivés. Heureusement, il existe une méthode que vous pouvez utiliser pour rechercher et afficher des fichiers de log compressés sans les décompresser et compromettre l'espace disque.
La commande que vous pouvez utiliser pour rechercher dans des fichiers compressés est zgrep :
Contenu d'un fichier 'audit.log' dans une archive.
Nous pouvons rechercher une chaîne dans une archive en utilisant la commande ci-dessous :
zgrep -Hna 'string-to-search' compressedFile.tar.gz
Examinons brièvement les flags.
-H liste le nom du fichier qui contient la correspondance.
-n affiche le numéro de ligne qui contient la chaîne correspondante.
-a traite tous les fichiers comme des fichiers texte.
Voici le résultat :

Conclusion
La compression de fichiers nous aide à économiser du temps et des ressources lors du partage de fichiers. Les serveurs tournent presque toujours et archivent d'énormes fichiers de log.
Vous pouvez également planifier la compression de fichiers via des tâches cron pour automatiser le nettoyage du disque. Je vous recommande vivement de tirer parti de cette utilité.
Merci d'avoir lu jusqu'à la fin. J'adorerais entrer en contact avec vous. Vous pouvez me trouver ici sur Twitter. N'hésitez pas à partager vos pensées.
À bientôt.