GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Pigz – Dateien parallel unter Linux komprimieren und dekomprimieren

Schwein , kurz für p arallel ich Implementierung von gz ip ist ein kostenloses Open-Source-Multithread-Komprimierungsprogramm zum Komprimieren und Dekomprimieren von Dateien unter Linux. Pigz, ausgesprochen als pig-zee , verwendet die zlib und pthread Bibliotheken und nutzt beim Komprimieren von Daten die Vorteile mehrerer Prozessoren und mehrerer Kerne voll aus. Da pigz mithilfe von Threads komprimiert, um mehrere Prozessoren und Kerne zu nutzen, kann es größere Dateien viel schneller archivieren als mit gzip. Einfach ausgedrückt, Pigz macht das, was gzip macht, aber es verteilt die Arbeit beim Komprimieren auf mehrere Prozessoren und Kerne und beschleunigt den Komprimierungs-/Dekomprimierungsprozess erheblich. Lassen Sie uns in dieser Anleitung lernen, Dateien mit Pigz unter Linux parallel zu komprimieren und zu dekomprimieren.

Installieren Sie Pigz unter Linux

Pigz ist in den offiziellen Repositories beliebter Linux-Betriebssysteme verfügbar.

Auf Arch Linux und seine Varianten wie Manjaro Linux, aktivieren Sie [Community] Repository und installieren Sie Pigz mit dem Befehl:

$ sudo pacman -S pigz

Auf CentOS 8/7/6 :

$ sudo yum install pigz

Auf Debian :

$ sudo apt-get install pigz

Auf Fedora :

$ sudo dnf install pigz

Auf Ubuntu , Linux Mint :

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

Auf openSUSE :

$ sudo zypper install pigz

Kompilieren und installieren Sie bei anderen Linux-Distributionen wie unten gezeigt aus dem Quellcode.

Stellen Sie zunächst sicher, dass Sie die folgenden Voraussetzungen installiert haben:

  • machen
  • gcc
  • zlib-devel

Beispielsweise können Sie auf Debian-basierten Systemen die obigen Pakete mit dem Befehl installieren:

$ sudo apt install make gcc zlib-devel

Auf RPM-basierten Systemen:

$ sudo yum install make gcc zlib-devel

Laden Sie dann die neueste Pigz-Version von der offiziellen Website herunter (Link ist am Ende angegeben):

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

Extrahieren Sie die Pigz-Tar-Datei:

$ tar -xzvf pigz-2.4.tar.gz

Dieser Befehl extrahiert den Inhalt in einen Ordner namens pigz-2.4 im aktuellen Arbeitsverzeichnis.

CD in das "pigz-2.4"-Verzeichnis:

$ cd pigz-2.4

Kompilieren und installieren Sie es mit dem folgenden Befehl:

$ make

Kopieren Sie die Pigz-Binärdatei in Ihren $PATH, zum Beispiel /usr/local/bin :

$ sudo cp pigz /usr/local/bin/

Melden Sie sich ab und wieder an, um pigz zu verwenden.

Dateien parallel mit Pigz komprimieren und dekomprimieren

Pigz teilt die gegebene Eingabe in 128 KB Chunks und komprimiert jeden von ihnen parallel. Das generierte komprimierte Datenformat liegt im gzip-, zlib- oder Single-Entry-Zip-Format vor, das die Deflate-Komprimierungsmethode verwendet. Standardmäßig komprimiert es die Datei gzip (.gz)-Format.

Lassen Sie mich Ihnen einige praktische Beispiele zeigen. Für diese Anleitung verwende ich archlinux.iso Datei (Größe 677,4 MB ) zum Testen.

Dateien komprimieren

Um eine Datei mit Standardoptionen zu komprimieren, führen Sie einfach Folgendes aus:

pigz <path-to-file>

Beispiel:

$ pigz archlinux.iso

Der obige Befehl komprimiert die angegebene Datei, z. B. archlinux.iso und speichern Sie es als archlinux.iso.gz im aktuellen Arbeitsverzeichnis.

Bitte beachten Sie, dass der obige Befehl die Originaldatei, d. h. archlinux.iso, nach dem Komprimieren löscht. Wenn Sie die Originaldatei nicht löschen möchten, verwenden Sie -k (behalten), um Pigz anzuweisen, die Originaldatei nach der Verarbeitung nicht zu löschen.

$ pigz -k archlinux.iso

Inhalt einer Archivdatei auflisten

Um den Inhalt der obigen archivierten Datei aufzulisten, ohne sie zu extrahieren, verwenden Sie -l Flagge.

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

Wie Sie in der obigen Ausgabe sehen können, wurde die Eingabedatei gegenüber ihrer ursprünglichen Größe um 3,3 % verkleinert.

Komprimierungsmethoden angeben

Pigz unterstützt die folgenden Komprimierungsmethoden:

  • Langsamste und beste Komprimierung (-9)
  • Schnellste und weniger Komprimierung (-1)
  • Keine Komprimierung (-0)
  • Standardkomprimierung (-6)

Um beispielsweise eine Datei mit der besten Komprimierungsmethode (langsam) zu komprimieren, führen Sie Folgendes aus:

$ pigz -9 archlinux.iso

Eine Datei mit weniger Komprimierung komprimieren (schnell):

$ pigz -1 archlinux.iso

Keine Komprimierung:

$ pigz -0 archlinux.iso

Komprimierungsformat ändern

Standardmäßig speichert es die Ausgabedatei in gzip Format. Sie können es jedoch in ein anderes Format ändern.

Der folgende Befehl komprimiert die angegebene Datei zu zlib (.zz) statt gzip-Format:

$ pigz -k -z archlinux.iso

Hier haben wir das -k verwendet (Kleinbuchstaben), um die Originaldatei nach dem Komprimieren beizubehalten.

Ähnlich, um die Datei in zip zu komprimieren verwenden Sie -K (Großbuchstaben) Flag:

$ pigz -k -K archlinux.iso

Verzeichnisse komprimieren

Pigz hat keine Möglichkeit, Ordner direkt zu komprimieren. Wir können dies jedoch erreichen, indem wir tar kombinieren Befehl mit pigz wie unten.

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

Der obige Befehl komprimiert den Ordner Pictures und speichert ihn als Datei pictures.tar.gz.

Als einer unserer Leser Wazz Wie im Kommentarbereich unten gesagt, können wir auch den Parameter „use-compress-program“ in tar verwenden, um pigz auszuführen, anstatt es auszugeben.

Beispiel:

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

Anzahl der Prozessoren beim Komprimieren begrenzen

Wie ich bereits sagte, nutzt Pigz beim Komprimieren von Dateien mehrere Prozessoren und Kerne bis zum Anschlag aus. Sie können dieses Verhalten mit -p ändern Flagge.

Zum Beispiel wird der folgende Befehl eine Datei mit der besten Komprimierungsmethode und 4 Prozessoren komprimieren und die Originaldatei behalten:

$ pigz -9 -k -p4 archlinux.iso

Um die Anzahl der Prozessorkerne unter Linux zu ermitteln, lesen Sie die folgende Anleitung:

  • So ermitteln Sie die Anzahl der CPU-Kerne über die Befehlszeile in Linux

Dateien dekomprimieren

Wir können die komprimierten Dateien mit pigz -d in ihre ursprüngliche Form dekomprimieren oder unpigz Befehle.

$ pigz -d archlinux.iso.gz

Oder,

$ unpigz archlinux.iso.gz

Weitere Einzelheiten finden Sie im Hilfebereich und auf den Manpages:

$ pigz --help
$  man pigz

Gzip vs. Pigz – Leistungsvergleich

Ich habe die archlinux.iso getestet (Größe 677,4 MB )-Datei mit den Dienstprogrammen Pigz und Gzip. Hier sind die Ergebnisse:

Komprimierung mit Gzip:

$ time gzip archlinux.iso

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

Komprimierung mit Pigz:

$ time pigz archlinux.iso

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

Dekomprimierung mit Gzip:

$ time gzip -d archlinux.iso.gz 

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

Dekompression mit Pigz:

$ time unpigz archlinux.iso.gz 

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

Wie Sie in den obigen Ausgaben sehen können, kann Pigz eine einzelne Datei von 677,4 MB komprimieren und dekomprimieren zweimal schneller als mit gzip.

Wenn Sie also ein modernes System mit mehreren Prozessoren und mehreren Kernen haben und größere Dateien so schnell wie möglich komprimieren möchten, indem Sie alle verfügbaren CPU-Kerne verwenden, ist pigz eine gute Wahl! Probieren Sie es aus und teilen Sie uns Ihre Meinung zum Pigz-Komprimierungsprogramm im Kommentarbereich unten mit.

Verwandte Lektüre:

  • So komprimieren und dekomprimieren Sie Dateien unter Linux
  • So archivieren Sie Dateien und Verzeichnisse unter Linux

Linux
  1. 16 Tar-Befehle zum Komprimieren und Extrahieren von Dateien unter Linux

  2. So komprimieren und dekomprimieren Sie Dateien unter Linux

  3. Tar-Befehl unter Linux (Dateien komprimieren und dekomprimieren)

  4. So archivieren und komprimieren Sie Dateien unter Linux

  5. So komprimieren und dekomprimieren Sie .bz2-Dateien in Linux mit dem bzip2-Befehl

So benennen Sie Dateien und Verzeichnisse in Linux um

So komprimieren Sie Dateien und Verzeichnisse unter Linux

So installieren Sie Pigz, um Dateien unter Linux schneller zu komprimieren

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

Linux-tar-Befehl zum Komprimieren und Extrahieren von Dateien

So installieren und verwenden Sie Pigz, um Dateien unter Linux schneller zu komprimieren