Comment compresser et décompresser des archives tar.bz2 sous Linux ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir ensemble une astuce sous Linux : comment compresser et décompresser les fichiers tar.bz2 sous Linux, notamment Debian, Ubuntu ou CentOS. Une archive tar.bz2 s'appuie sur l'algorithme de compression bzip2. Cet algorithme est plus puissant, le poids des archives sera inférieur vis-à-vis du gzip mais la création de l'archive avec ce format nécessite plus de ressources système.
Personnellement, c'est surtout la commande pour décompresser une archive de ce type que j'utilise fréquemment, plutôt que la création d'une archive dans ce format. Néanmoins, nous verrons les deux opérations.
Version originale de l'article : 15 octobre 2020.
II. Compresser tar.bz2 sous Linux
Pour créer l'archive via l'algorithme bzip2, nous allons utiliser la commande tar avec plusieurs options, notamment l'option "j" pour spécifier l'algorithme bzip2, l'option "c" pour indiquer qu'il s'agit d'une archive à créer, l'option "f" indique que le nom de l'archive suit, tandis que l'option "v" sert à activer le mode verbeux.
Voici un exemple pour créer l'archive "MonArchive.tar.bz2" en intégrant dans cette archive "MonFichier1.txt" et "MonFichier2.txt" :
tar -jcvf MonArchive.tar.bz2 MonFichier1.txt MonFichier2.txt
Il est à noter que l'option "-r" ou "--append" peut-être utilisée pour ajouter des fichiers à une archive existante. Sinon, l'archive est écrasée si elle existe déjà.
Passons maintenant à la phase de décompression...
III. Décompresser tar.bz2 sous Linux
Comment décompresser une archive tar.bz2 ? Là encore, nous allons utiliser la commande tar avec les options adéquates.
Avant même de décompresser l'archive tar.bz2, sachez que nous pouvons regarder son contenu. Ceci permet d'avoir un aperçu des données présentes dans l'archive avant même de la décompresser.
tar -tvjf MonArchive.tar.bz2
Ensuite, nous pouvons passer à l'étape suivante : décompresser cette archive. Pour cela, l'option "j" est indispensable pour spécifier qu'il s'agit d'une archive compressée via l'algorithme bzip2. Ensuite, nous avons les options classiques, notamment "x" pour l'extraction.
Voici un exemple pour extraire le contenu de l'archive nommée "MonArchive.tar.bz2":
tar -jxvf /home/MonArchive.tar.bz2
Le contenu de l'archive sera extrait dans le dossier courant au niveau du shell Unix. Si l'on veut décompresser le contenu de l'archive vers un répertoire de destination spécifique, par exemple "/tmp/", nous devons utiliser une option supplémentaire :
tar -jxvf /home/flo/MonArchive.tar.bz2 -C /tmp/
Remarque :
Si vous obtenez un message d'erreur du type "tar (child): bzip2 : exec impossible: Aucun fichier ou dossier de ce type" lors de l'extraction, c'est qu'il vous manque le paquet "bzip2" sur votre machine. Voici comment l'installer sur CentOS avec yum :
yum install bzip2
Ensuite, vous pouvez réessayer d'extraire les données. Il ne vous reste plus qu'à exploiter vos données ! Si vous avez besoin d'aide pour utiliser une option supplémentaire, je vous invite à lire la page man de tar.
IV. Conclusion
Voilà, nous avons appris les bases pour compresser et décompresser des fichiers tar.bz2 sous Linux en utilisant la commande tar, décidément très utile sur Linux lorsqu'il s'agit de manipuler des archives compressées. Nous avons vu comment créer une archive, afficher son contenu avant de la décompresser, et bien sûr comment décompresser cette archive.