Στο επόμενο άρθρο θα ρίξουμε μια ματιά στο πώς zip και unzip αρχεία χρησιμοποιώντας gzip και bzip2. Η συμπίεση είναι πολύ χρήσιμη κατά τη δημιουργία αντιγράφων ασφαλείας σημαντικών αρχείων ή την αποστολή μεγάλων αρχείων μέσω του Διαδικτύου. Σήμερα υπάρχουν πολλά προγράμματα για συμπίεση και αποσυμπίεση αρχείων στο GNU / Linux.
Ένας συνάδελφος μας είπε ήδη για μερικά από αυτά προγράμματα όπως σπάνιος y zip σε αυτό το ίδιο ιστολόγιο. Σε αυτό το σεμινάριο, θα ρίξουμε μια ματιά σε δύο από αυτά μόνο, όπως το gzip και το bzip2. Όπως λέω, ας δούμε πώς να τα χρησιμοποιήσουμε για να συμπιέσουμε και να αποσυμπιέσουμε αρχεία με μερικά παραδείγματα στο Ubuntu.
Συμπίεση και αποσυμπίεση αρχείων χρησιμοποιώντας gzip και bzip2
Το πρόγραμμα gzip
Gzip είναι ένα βοηθητικό πρόγραμμα για τη συμπίεση και αποσυμπίεση αρχείων χρησιμοποιώντας το Αλγόριθμος κωδικοποίησης Lempel-Ziv (LZ77).
-
Συμπίεση αρχείων
Για να συμπιέσετε ένα αρχείο με το όνομα ubunlog.κείμενο, αντικαθιστώντας το με μια συμπιεσμένη έκδοση, θα εκτελέσουμε στο τερματικό (Ctrl + Alt + T):
gzip ubunlog.txt
Το Gzip θα αντικαταστήσει το αρχικό αρχείο που ονομάζεται ubunlog.txt από μια συμπιεσμένη έκδοση που ονομάζεται ubunlog.txt.gz.
Η εντολή gzip μπορεί επίσης να χρησιμοποιηθεί με άλλους τρόπους. Ένα καλό παράδειγμα είναι ότι μπορούμε δημιουργήστε μια συμπιεσμένη έκδοση της εξόδου μιας συγκεκριμένης εντολής. Κοιτάξτε την ακόλουθη εντολή.
ls -l ../../Descargas / | gzip > ubunlog.txt.gz
Η παραπάνω εντολή δημιουργεί μια συμπιεσμένη έκδοση της λίστας αρχείων στο φάκελο "Λήψεις".
-
Συμπίεση και αποσυμπίεση διατηρώντας το αρχικό αρχείο
Από προεπιλογή, το πρόγραμμα gzip θα συμπιεστεί το δεδομένο αρχείο, αντικαθιστώντας το με μια συμπιεσμένη έκδοση. Ωστόσο, μπορούμε να διατηρήσουμε το αρχικό αρχείο και να γράψουμε το αποτέλεσμα στην τυπική έξοδο. Για παράδειγμα, η ακόλουθη εντολή, συμπίεση ubunlog.txt και γράψτε το αποτέλεσμα στο output.txt.gz.
gzip -c ubunlog.txt > salida.txt.gz
Με τον ίδιο τρόπο, μπορούμε αποσυμπιέστε ένα συμπιεσμένο αρχείο καθορίζοντας το όνομα του αρχείου εξόδου:
gzip -c -d salida.txt.gz > ubunlog1.txt
Η παραπάνω εντολή αποσυμπιέζει το αρχείο output.txt.gz και εγγράφει το αποτέλεσμα στο αρχείο ubunlog1.txt. Στις δύο προηγούμενες περιπτώσεις, το αρχικό αρχείο δεν θα διαγραφεί.
-
Αποσυμπιέστε αρχεία
Για να αποσυμπιέσετε το αρχείο ubunlog.txt.gz, αντικαθιστώντας το με την αρχική μη συμπιεσμένη έκδοση, θα χρησιμοποιήσουμε την ακόλουθη εντολή στο τερματικό (Ctrl + Alt + T):
gzip -d ubunlog.txt.gz
Μπορούμε επίσης να χρησιμοποιήσουμε το gunzip για να αποσυμπιέσετε τα αρχεία.
gunzip ubunlog.txt.gz
-
Δείτε τα περιεχόμενα των συμπιεσμένων αρχείων χωρίς να τα αποσυμπιέσετε
Για να δείτε τα περιεχόμενα του συμπιεσμένου αρχείου χωρίς να το αποσυμπιέσετε χρησιμοποιώντας το gzip, θα χρησιμοποιήσουμε την επιλογή -c όπως φαίνεται στα ακόλουθα:
gunzip -c ubunlog1.txt.gz
Μπορούμε επίσης να χρησιμοποιήσουμε το βοηθητικό πρόγραμμα zcat για τον ίδιο σκοπό, όπως παρακάτω:
zcat ubunlog.txt.gz
Θα είμαστε σε θέση διοχετεύστε την έξοδο χρησιμοποιώντας την εντολή "λιγότερο" για να δείτε τη σελίδα εξόδου ανά σελίδα όπως φαίνεται παρακάτω:
gunzip -c ubunlog.txt.gz | less
Η λιγότερη εντολή μπορεί επίσης να χρησιμοποιηθεί με zcat:
zcat ubunlog.txt.gz | less
Θα έχουμε επίσης την επιλογή να χρησιμοποιήσουμε το πρόγραμμα zless. Αυτό εκτελεί την ίδια λειτουργία με τους προηγούμενους σωλήνες:
zless ubunlog.txt.gz
Μπορούμε έξοδος σελιδοποίησης πατώντας το πλήκτρο q.
-
Συμπίεση του αρχείου με gzip καθορίζοντας το επίπεδο συμπίεσης
Ένα άλλο πλεονέκτημα που πρέπει να θυμάστε είναι το gzip υποστηρίζει επίπεδο συμπίεσης. Υποστηρίζει 3 επίπεδα συμπίεσης όπως παρακάτω.
1 - Ταχύτερη (χειρότερα)
9 - πιο αργό (mejor)
6 - Προεπιλεγμένο επίπεδο
Για να συμπιέσετε το αρχείο με το όνομα ubunlog.txt, αντικαθιστώντας το με ένα συμπιεσμένη έκδοση με το καλύτερο επίπεδο συμπίεσης, θα το χρησιμοποιησουμε:
gzip -9 ubunlog.txt
-
Συνδυάστε πολλά συμπιεσμένα αρχεία
Μια άλλη πιθανότητα που μας προσφέρει το gzip είναι αυτή του συνενώστε πολλά συμπιεσμένα αρχεία σε ένα. Μπορούμε να το κάνουμε με τον ακόλουθο τρόπο:
gzip -c ubunlog1.txt > salida.txt.gz gzip -c ubunlog2.txt >> salida.txt.gz
Οι παραπάνω δύο εντολές θα συμπιεστούν ubunlog1.txt και ubunlog2.txt και αποθηκεύστε τα σε ένα μόνο αρχείο που ονομάζεται output.txt.gz.
Μπορούμε δείτε τα περιεχόμενα των αρχείων (ubunlog1 .txt και ubunlog1.txt) χωρίς την εξαγωγή τους χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες εντολές:
gunzip -c salida.txt.gz gunzip -c salida.txt zcat salida.txt.gz zcat salida.txt
Για περισσότερες λεπτομέρειες σχετικά με το gzip, ανατρέξτε στο ανθρώπινες σελίδες:
man gzip
Το πρόγραμμα bzip2
El bzip2 είναι πολύ παρόμοιο με το πρόγραμμα gzip. Η κύρια διαφορά είναι ότι χρησιμοποιεί έναν διαφορετικό αλγόριθμο συμπίεσης που ονομάζεται Burrows-Wheeler αλγόριθμος συμπίεσης κειμένου ταξινόμησης μπλοκ και κωδικοποίηση Huffman. Τα αρχεία που συμπιέζονται με το bzip2 θα τελειώσουν με την επέκταση .bz2.
Όπως είπα, η χρήση του bzip2 είναι σχεδόν το ίδιο με το gzip. Απλά θα πρέπει αντικαταστήστε το gzip στα παραπάνω παραδείγματα με bzip2, gunzip με bunzip2, zcat με bzcat και ούτω καθεξής.
-
Συμπίεση αρχείων
Για να συμπιέσετε ένα αρχείο χρησιμοποιώντας το bzip2, αντικαθιστώντας το με μια συμπιεσμένη έκδοση, θα εκτελέσουμε:
bzip2 ubunlog.txt
-
Συμπιέστε τα αρχεία χωρίς να διαγράψετε το αρχικό αρχείο
Εάν δεν θέλουμε να αντικαταστήσουμε το αρχικό αρχείο, θα χρησιμοποιήσουμε το -c επιλογή και θα γράψουμε το αποτέλεσμα σε ένα νέο αρχείο.
bzip2 -c ubunlog.txt > salida.txt.bz2
-
Αποσυμπιέστε αρχεία
να αποσυμπιέστε ένα αρχείο συμπιεσμένο θα χρησιμοποιήσουμε μία από τις ακόλουθες δύο δυνατότητες:
bzip2 -d ubunlog.txt.bz2 bunzip2 ubunlog.txt.bz2
-
Δείτε τα περιεχόμενα των συμπιεσμένων αρχείων χωρίς να τα αποσυμπιέσετε
Για να δούμε το περιεχόμενο ενός συμπιεσμένου αρχείου χωρίς να το αποσυμπιέσουμε, θα πρέπει μόνο να χρησιμοποιήσουμε οποιαδήποτε από τις επιλογές:
bunzip2 -c ubunlog.txt.bz2 bzcat ubunlog.txt.bz2
Για περισσότερες λεπτομέρειες, μπορείτε να συμβουλευτείτε το ανθρώπινες σελίδες:
man bzip2