Sådan komprimeres filer hurtigere med Pigz Tool i Linux


Skrevet af Mark Adler er Pigz et akronym for Parallel Implementation of GZip. Det er et smukt komprimeringsværktøj, der hjælper dig med at komprimere filer med lynhurtige hastigheder. Som en forbedring af det gode gamle gzip-værktøj udnytter det flere kerner og processorer til at komprimere data.

Denne vejledning skinner mere lys på Pigz og tager dig gennem, hvordan du bruger værktøjet til at komprimere filer i Linux-systemer.

Installation af Pigz på Linux-systemer

Installation af Pigz er en tur i parken, fordi Pigz-pakken er indeholdt i officielle opbevaringssteder til større distributioner som Debian og CentOS.

Du kan installere Pigz i en enkelt kommando i forskellige distributioner ved hjælp af deres respektive pakkehåndtering som følger.

$ sudo apt install pigz  [On Debian/Ubuntu]
$ sudo dnf install pigz  [On CentOS/RHEL/Fedora]
$ sudo pacman -S pigz    [On Arch/Manjaro Linux] 
OR
$ yay -S pigz

Sådan komprimeres filer med Pigz

For at komprimere en enkelt fil til et zip-format skal du bruge syntaksen.

$ pigz filename

I denne vejledning bruger vi filen ubuntu-20.04-beta-desktop-amd64.iso til demonstrationsformål. For at komprimere den udførte fil:

$ pigz ubuntu-20.04-beta-desktop-amd64.iso

Kommandoen sletter dog den originale fil ved komprimering, som du måske har bemærket. For at bevare den originale fil efter komprimering skal du køre med indstillingen -k som vist.

$ pigz -k ubuntu-20.04-beta-desktop-amd64.iso

Fra output kan vi tydeligt se, at den oprindelige fil er blevet bevaret, selv efter komprimering.

Kontroller indholdet af komprimeret fil i Linux

For at kontrollere indholdet af den komprimerede fil, inklusive statistikker over det opnåede kompressionsforhold, skal du bruge indstillingen -l med pigz-kommandoen:

$ pigz -l ubuntu-20.04-beta-desktop-amd64.iso.gz

Fra output får du ikke kun se indholdet af den zip-fil, men også procentdelen af komprimering, som i dette tilfælde er 1,9%.

Derudover kan du bruge forskellige kompressionsniveauer, der findes fra 1 til 9. Følgende kompressionsniveauer understøttes:

  • 6 - Standardkomprimering.
  • 1 - Hurtigste men tilbyder mindst kompression.
  • 9 - Langsomste men den bedste komprimering.
  • 0 - Ingen komprimering.

For eksempel, for at komprimere filen med det bedste komprimeringsniveau skal du udføre:

$ pigz -9 ubuntu-20.04-beta-desktop-amd64.iso

Sådan komprimeres en mappe med Pigz

I sig selv har Pigz ikke mulighed for at komprimere en mappe, det komprimerer kun enkeltfiler. Som en løsning bruges pigz i forbindelse med tar-kommando til zip-mapper.

For at komprimere en mappe skal du bruge argumentet --use-compress-program som vist:

$ tar --use-compress-program="pigz -k " -cf dir1.tar.gz dir1

Sådan begrænses antallet af processorer under komprimering

Vi nævnte tidligere, at pigz-værktøjet bruger flere kerner og processorer, når de komprimerer filer. Du kan angive antallet af kerner, der skal bruges ved hjælp af indstillingen -p .

I dette eksempel nedenfor har vi brugt den bedste komprimering (betegnet med -9 ) med 4 processorer (-p4) mens vi opretholder den originale fil (-k).

$ pigz -9 -k -p4 ubuntu-20.04-beta-desktop-amd64.iso

Sådan dekomprimeres filer ved hjælp af Pigz

For at dekomprimere en fil eller mappe ved hjælp af pigz, skal du bruge indstillingen -d eller unpigz-kommandoen.

Ved hjælp af vores komprimerede ISO-fil vil kommandoen være:

$ pigz -d ubuntu-20.04-beta-desktop-amd64.iso
OR
$ unpigz dir1.tar.gz

Sammenligning mellem Pigz vs Gzip

Vi gik lidt længere og satte Pigz mod Gzip-værktøjet.

Her er resultaterne:

$ time gzip ubuntu-20.04-beta-desktop-amd64.iso
$ time pigz ubuntu-20.04-beta-desktop-amd64.iso
$ time gzip -d ubuntu-20.04-beta-desktop-amd64.iso.gz
$ time unpigz ubuntu-20.04-beta-desktop-amd64.iso.gz

Fra sammenligningen kan vi tydeligt se, at komprimerings- og dekompressionstider for Pigz er meget kortere end Gzip. Dette indebærer, at Pigz-kommandolinjeværktøjet er meget hurtigere end Gzip-værktøjet

For flere detaljer om brugen af pigz-kommandoen, besøg man-siderne.

$ man pigz

Desuden skal du køre kommandoen nedenfor for at se alle de tilgængelige muligheder til brug med pigz-kommandoen.

$ pigz --help

Og der har du det. Vi har dækket kommandolinjeværktøjet pigz og viste dig, hvordan du kan komprimere og dekomprimere filer. Vi gik videre og sammenlignede Pigz med Gzip og fandt ud af, at Pigz er den bedste af de to med hensyn til hastighed for både kompression og dekompression. Vi inviterer dig til at give det et skud og fortælle os, hvordan det gik.