Πώς να συμπιέσετε αρχεία πιο γρήγορα με το Pigz Tool στο Linux


Γράφτηκε από τον Mark Adler, το Pigz είναι ένα αρκτικόλεξο του όρου Παράλληλη υλοποίηση του GZip. Είναι ένα εξαιρετικό εργαλείο συμπίεσης που σας βοηθά να συμπιέσετε αρχεία με εκπληκτικές γρήγορες ταχύτητες. Ως βελτίωση του παλιού καλού βοηθητικού προγράμματος gzip, αξιοποιεί πολλούς πυρήνες και επεξεργαστές για τη συμπίεση δεδομένων.

Αυτός ο οδηγός ρίχνει περισσότερο φως στο Pigz και σας καθοδηγεί πώς να χρησιμοποιήσετε το βοηθητικό πρόγραμμα για τη συμπίεση αρχείων σε συστήματα Linux.

Εγκατάσταση του Pigz σε συστήματα Linux

Η εγκατάσταση του Pigz είναι μια βόλτα στο πάρκο επειδή το πακέτο Pigz περιέχεται σε επίσημα αποθετήρια για μεγάλες διανομές όπως το Debian και το CentOS .

Μπορείτε να εγκαταστήσετε το Pigz σε μία εντολή σε διάφορες διανομές χρησιμοποιώντας τους αντίστοιχους διαχειριστές πακέτων ως εξής.

$ 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

Πώς να συμπιέσετε αρχεία με το Pigz

Για να συμπιέσετε ένα μεμονωμένο αρχείο σε μορφή zip χρησιμοποιήστε τη σύνταξη.

$ pigz filename

Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε το αρχείο ubuntu-20.04-beta-desktop-amd64.iso για σκοπούς επίδειξης. Για να συμπιέσετε το αρχείο εκτελέστε:

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

Ωστόσο, η εντολή διαγράφει το αρχικό αρχείο κατά τη συμπίεση, όπως ίσως έχετε παρατηρήσει. Για να διατηρήσετε το αρχικό αρχείο μετά τη συμπίεση, εκτελέστε χρησιμοποιήστε την επιλογή -k όπως φαίνεται.

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

Από την έξοδο, μπορούμε να δούμε ξεκάθαρα ότι το αρχικό αρχείο έχει διατηρηθεί ακόμα και μετά τη συμπίεση.

Ελέγξτε το περιεχόμενο του συμπιεσμένου αρχείου στο Linux

Για να ελέγξετε τα περιεχόμενα του συμπιεσμένου αρχείου, συμπεριλαμβανομένων των στατιστικών στοιχείων σχετικά με την αναλογία συμπίεσης που επιτυγχάνεται, χρησιμοποιήστε την επιλογή -l με την εντολή pigz:

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

Από την έξοδο, δεν μπορείτε μόνο να δείτε τα περιεχόμενα του συμπιεσμένου αρχείου αλλά και το ποσοστό συμπίεσης που σε αυτήν την περίπτωση είναι 1,9%.

Επιπλέον, μπορείτε να χρησιμοποιήσετε διάφορα επίπεδα συμπίεσης που υπάρχουν από 1 έως 9. Υποστηρίζονται τα ακόλουθα επίπεδα συμπίεσης:

  • 6 – Προεπιλεγμένη συμπίεση.
  • 1 – Το πιο γρήγορο αλλά προσφέρει τη μικρότερη συμπίεση.
  • 9 – Η πιο αργή αλλά η καλύτερη συμπίεση.
  • 0 – Χωρίς συμπίεση.

Για παράδειγμα, για να συμπιέσετε το αρχείο με το καλύτερο επίπεδο συμπίεσης, εκτελέστε:

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

Πώς να συμπιέσετε έναν κατάλογο με το Pigz

Από μόνο του, το Pigz δεν έχει επιλογές για τη συμπίεση ενός φακέλου, συμπιέζει μόνο μεμονωμένα αρχεία. Ως λύση, το pigz χρησιμοποιείται σε συνδυασμό με την εντολή tar για συμπίεση καταλόγων.

Για να συμπιέσετε έναν κατάλογο, χρησιμοποιήστε το όρισμα --use-compress-program όπως φαίνεται:

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

Πώς να περιορίσετε τον αριθμό των επεξεργαστών κατά τη συμπίεση

Αναφέραμε προηγουμένως ότι το βοηθητικό εργαλείο pigz χρησιμοποιεί πολλούς πυρήνες και επεξεργαστές κατά τη συμπίεση αρχείων. Μπορείτε να καθορίσετε τον αριθμό των πυρήνων που θα χρησιμοποιηθούν χρησιμοποιώντας την επιλογή -p.

Σε αυτό το παράδειγμα, παρακάτω, χρησιμοποιήσαμε την καλύτερη συμπίεση (που συμβολίζεται με -9) με 4 επεξεργαστές (-p4) διατηρώντας παράλληλα το αρχικό αρχείο (-k).

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

Πώς να αποσυμπιέσετε αρχεία χρησιμοποιώντας το Pigz

Για να αποσυμπιέσετε ένα αρχείο ή έναν κατάλογο χρησιμοποιώντας το pigz, χρησιμοποιήστε την επιλογή -d ή την εντολή unpigz.

Χρησιμοποιώντας το συμπιεσμένο μας αρχείο ISO, η εντολή θα είναι:

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

Σύγκριση μεταξύ Pigz και Gzip

Προχωρήσαμε λίγο παραπέρα και βάλαμε σε αντίθεση το Pigz με το εργαλείο Gzip.

Εδώ είναι τα αποτελέσματα:

Συμπίεση Gzip

$ time gzip ubuntu-20.04-beta-desktop-amd64.iso

Συμπίεση Pigz

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

Αποσυμπίεση Gzip

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

Αποσυμπίεση Pigz

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

Από τη σύγκριση, μπορούμε να δούμε ξεκάθαρα ότι οι χρόνοι συμπίεσης και αποσυμπίεσης για το Pigz είναι πολύ μικρότεροι από το Gzip. Αυτό σημαίνει ότι το εργαλείο γραμμής εντολών Pigz είναι πολύ πιο γρήγορο από το εργαλείο Gzip

Για περισσότερες λεπτομέρειες σχετικά με τη χρήση της εντολής pigz, επισκεφτείτε τις σελίδες man.

$ man pigz

Επιπλέον, εκτελέστε την παρακάτω εντολή για να δείτε όλες τις διαθέσιμες επιλογές για χρήση με την εντολή pigz.

$ pigz --help

Και εκεί το έχετε. Καλύψαμε το εργαλείο γραμμής εντολών pigz και σας δείξαμε πώς μπορείτε να συμπιέσετε και να αποσυμπιέσετε αρχεία. Προχωρήσαμε περισσότερο και συγκρίναμε το Pigz με το Gzip και ανακαλύψαμε ότι το Pigz είναι το καλύτερο από τα δύο όσον αφορά την ταχύτητα συμπίεσης και αποσυμπίεσης. Σας προσκαλούμε να το δοκιμάσετε και να μας πείτε πώς πήγε.