GNU/Linux >> Tutoriels Linux >  >> Linux

Pigz - Compresser et décompresser des fichiers en parallèle sous Linux

Cochon , abréviation de p arallèle i implémentation de gz ip, est un utilitaire de compression multithread gratuit et open source pour compresser et décompresser des fichiers sous Linux. Pigz, prononcé comme pig-zee , utilise le zlib et pthread bibliothèques et tire pleinement parti de plusieurs processeurs et de plusieurs cœurs lors de la compression des données. Étant donné que pigz se comprime à l'aide de threads pour utiliser plusieurs processeurs et cœurs, il peut être en mesure d'archiver des fichiers plus volumineux beaucoup plus rapidement qu'avec gzip. Pour faire simple, pigz fait ce que fait gzip, mais il alloue le travail à plusieurs processeurs et cœurs lors de la compression et accélère considérablement le processus de compression/décompression. Dans ce guide, apprenons à compresser et décompresser des fichiers en parallèle à l'aide de Pigz sous Linux.

Installer Pigz sur Linux

Pigz est disponible dans les dépôts officiels des systèmes d'exploitation Linux populaires.

Sur Arch Linux et ses variantes comme Manjaro Linux, activez [Communauté] référentiel et installez Pigz à l'aide de la commande :

$ sudo pacman -S pigz

Sur CentOS 8/7/6 :

$ sudo yum install pigz

Sur Debian :

$ sudo apt-get install pigz

Sur Fedora :

$ sudo dnf install pigz

Sur Ubuntu , Linux Mint :

$ sudo add-apt-repository universe
$ sudo apt install pigz

Sur openSUSE :

$ sudo zypper install pigz

Sur les autres distributions Linux, compilez et installez à partir des sources comme indiqué ci-dessous.

Tout d'abord, assurez-vous d'avoir installé les prérequis suivants :

  • faire
  • gcc
  • zlib-devel

Par exemple, sur les systèmes basés sur Debian, vous pouvez installer les packages ci-dessus à l'aide de la commande :

$ sudo apt install make gcc zlib-devel

Sur les systèmes basés sur RPM :

$ sudo yum install make gcc zlib-devel

Téléchargez ensuite la dernière version de Pigz sur le site officiel (le lien est donné à la fin) :

$ wget https://zlib.net/pigz/pigz-2.4.tar.gz

Extrayez le fichier tar pigz :

$ tar -xzvf pigz-2.4.tar.gz

Cette commande extraira le contenu dans un dossier nommé pigz-2.4 dans le répertoire de travail courant.

CD dans le répertoire "pigz-2.4":

$ cd pigz-2.4

Compilez et installez-le à l'aide de la commande suivante :

$ make

Copiez le binaire pigz dans votre $PATH, par exemple /usr/local/bin :

$ sudo cp pigz /usr/local/bin/

Déconnectez-vous et reconnectez-vous pour commencer à utiliser pigz.

Compresser et décompresser des fichiers en parallèle à l'aide de Pigz

Pigz divise l'entrée donnée en 128 Ko morceaux et comprime chacun d'eux en parallèle. Le format de données compressé généré est au format gzip, zlib ou zip à entrée unique à l'aide de la méthode de compression deflate. Par défaut, il compresse le fichier gzip (.gz).

Laissez-moi vous montrer quelques exemples pratiques. Pour les besoins de ce guide, j'utiliserai archlinux.iso fichier (taille 677,4 Mo ) pour les tests.

Compresser les fichiers

Pour compresser un fichier avec les options par défaut, exécutez simplement :

pigz <path-to-file>

Exemple :

$ pigz archlinux.iso

La commande ci-dessus compressera le fichier donné, c'est-à-dire archlinux.iso et enregistrez-le sous archlinux.iso.gz dans le répertoire de travail courant.

Veuillez noter que la commande ci-dessus supprimera le fichier d'origine, c'est-à-dire archlinux.iso après l'avoir compressé. Si vous ne voulez pas supprimer le fichier d'origine, utilisez -k (conserver) pour indiquer à Pigz de ne pas supprimer le fichier d'origine après l'avoir traité.

$ pigz -k archlinux.iso

Liste du contenu d'un fichier d'archive

Pour lister le contenu du fichier archivé ci-dessus, sans l'extraire, utilisez -l drapeau.

$ pigz -l archlinux.iso.gz 
compressed   original reduced  name
 654901763  677380096    3.3%  archlinux.iso

Comme vous pouvez le voir dans la sortie ci-dessus, le fichier d'entrée a été réduit de 3,3 % par rapport à sa taille d'origine.

Spécifier les méthodes de compression

Pigz prend en charge les méthodes de compression suivantes :

  • Compression la plus lente et la meilleure (-9)
  • Le plus rapide et le moins compressé (-1)
  • Pas de compression (-0)
  • Compression par défaut (-6)

Par exemple, pour compresser un fichier en utilisant la meilleure méthode de compression (lente), exécutez :

$ pigz -9 archlinux.iso

Compresser un fichier avec moins de compression (rapide) :

$ pigz -1 archlinux.iso

Pas de compression :

$ pigz -0 archlinux.iso

Modifier le format de compression

Par défaut, il enregistre le fichier de sortie dans gzip format. Vous pouvez cependant le modifier dans un format différent.

La commande suivante compresse le fichier donné en zlib (.zz) au lieu du format gzip :

$ pigz -k -z archlinux.iso

Ici, nous avons utilisé le -k (minuscule) pour conserver le fichier d'origine après l'avoir compressé.

De même, pour compresser le fichier en zip format, utilisez -K indicateur (majuscule) :

$ pigz -k -K archlinux.iso

Compresser les répertoires

Pigz n'a aucune option pour compresser directement les dossiers. Cependant, nous pouvons y parvenir en combinant tar commande avec pigz comme ci-dessous.

$ tar cf - Pictures/ | pigz > pictures.tar.gz

La commande ci-dessus compressera le dossier Images et l'enregistrera en tant que fichier pictures.tar.gz.

En tant que l'un de nos lecteurs Wazz dit dans la section des commentaires ci-dessous, nous pouvons également utiliser le paramètre "use-compress-program" dans tar pour exécuter pigz au lieu de le diffuser.

Exemple :

$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2

Limiter le nombre de processeurs lors de la compression

Comme je l'ai déjà dit, Pigz exploite à fond plusieurs processeurs et cœurs lors de la compression de fichiers. Vous pouvez modifier ce comportement en utilisant -p drapeau.

Par exemple, la commande suivante compressera un fichier en utilisant la meilleure méthode de compression et 4 processeurs et conservera le fichier d'origine :

$ pigz -9 -k -p4 archlinux.iso

Pour connaître le nombre de cœurs de processeur sous Linux, reportez-vous au guide suivant :

  • Comment trouver le nombre de cœurs de processeur à partir de la ligne de commande sous Linux

Décompresser les fichiers

Nous pouvons décompresser les fichiers compressés dans leur forme originale en utilisant pigz -d ou unpigz commandes.

$ pigz -d archlinux.iso.gz

Ou,

$ unpigz archlinux.iso.gz

Pour plus de détails, reportez-vous à la section d'aide et aux pages de manuel :

$ pigz --help
$  man pigz

Gzip vs Pigz - Comparaison des performances

J'ai testé le archlinux.iso (taille 677,4 Mo ) fichier avec les utilitaires Pigz et Gzip. Voici les résultats :

Compression avec Gzip :

$ time gzip archlinux.iso

real	0m35.086s
user	0m32.719s
sys	0m1.333s

Compression avec Pigz :

$ time pigz archlinux.iso

real 0m12.545s
user 0m46.376s
sys 0m1.520s

Décompression avec Gzip :

$ time gzip -d archlinux.iso.gz 

real	0m6.847s
user	0m5.621s
sys	0m0.783s

Décompression avec Pigz :

$ time unpigz archlinux.iso.gz 

real	0m2.398s
user	0m2.370s
sys	0m1.931s

Comme vous pouvez le voir dans les sorties ci-dessus, Pigz peut compresser et décompresser un seul fichier de 677,4 Mo deux fois plus rapide qu'avec gzip.

Donc, si vous avez un système moderne multiprocesseur et multicœur et que vous souhaitez compresser des fichiers plus volumineux aussi rapidement que possible, en utilisant tous vos cœurs de processeur disponibles, pigz sera un bon choix ! Essayez-le et faites-nous part de vos réflexions sur l'utilitaire de compression Pigz dans la section des commentaires ci-dessous.

Lire connexe :

  • Comment compresser et décompresser des fichiers sous Linux
  • Comment archiver des fichiers et des répertoires sous Linux

Linux
  1. 16 commandes Tar pour compresser et extraire des fichiers sous Linux

  2. Comment compresser/décompresser sous Linux

  3. Comment compresser et extraire des fichiers à l'aide de la commande tar sous Linux ?

  4. Comment compresser et décompresser des fichiers .bz2 sous Linux à l'aide de la commande bzip2

  5. Toutes les commandes de compression/décompression Linux

Comment renommer des fichiers et des répertoires sous Linux

Comment compresser des fichiers et des répertoires sous Linux

Comment installer Pigz pour compresser les fichiers plus rapidement sous Linux

Trouvez facilement des fichiers et des répertoires sur Linux

Commande Linux tar pour compresser et extraire des fichiers

Comment installer et utiliser Pigz pour compresser des fichiers plus rapidement sous Linux