Εντολή bunzip2 Linux: Πώς να το χρησιμοποιήσετε

Τι να ξέρετε

  • Χρησιμοποιήστε την επιλογή εντολής -c --stdout για συμπίεση/αποσυμπίεση στην τυπική έξοδο και -δ --αποσυμπίεση να αναγκάσει την αποσυμπίεση.
  • Χρήση -t --τεστ για να ελέγξετε την ακεραιότητα των καθορισμένων αρχείων. Χρήση -f --δύναμη για αναγκαστική αντικατάσταση αρχείων εξόδου. Χρήση -k --κρατώ για τη διατήρηση των αρχείων εισόδου.
  • Χρήση -s --μικρό για μείωση της χρήσης μνήμης και -q --ήσυχο για να αποκρύψετε προειδοποιητικά μηνύματα. Χρήση -v --περιεκτική για εμφάνιση αναλογιών συμπίεσης αρχείων.

Αυτό το άρθρο εξηγεί πώς να χρησιμοποιήσετε το Linux bunzip2 εντολή, που είναι ένας συμπιεστής αρχείων ταξινόμησης μπλοκ που μπορεί να χρησιμοποιηθεί τόσο για τη συμπίεση όσο και για την αποσυμπίεση δεδομένων. Όταν εκτελείτε το bzip2 εντολή χωρίς καμία επιλογή, το σύστημα συμπιέζει τα δεδομένα από προεπιλογή. bunzip2 αποσυμπιέζεται από προεπιλογή και bzcat αποσυμπιέζεται σε stdout.

Επιλογές εντολών Bunzip2 Linux

Λίστα επιλογών εντολών bunzip2
Επιλογή Εξήγηση
-c --stdout Συμπίεση ή αποσυμπίεση στην τυπική έξοδο.
-δ --αποσυμπίεση Αναγκαστική αποσυμπίεση. Το bzip2, το bunzip2 και το bzcat είναι πραγματικά το ίδιο πρόγραμμα και η απόφαση σχετικά με τις ενέργειες που πρέπει να γίνουν γίνεται με βάση το όνομα που χρησιμοποιείται. Αυτή η σημαία παρακάμπτει αυτόν τον μηχανισμό και αναγκάζει το bzip2 να αποσυμπιέσει.
-z --συμπίεση Το συμπλήρωμα στο -d: επιβάλλει συμπίεση, ανεξάρτητα από το όνομα της επίκλησης.
-t --τεστ Ελέγξτε την ακεραιότητα των καθορισμένων αρχείων, αλλά μην τα αποσυμπιέζετε. Αυτό εκτελεί πραγματικά μια δοκιμαστική αποσυμπίεση και πετάει το αποτέλεσμα.
-f --δύναμη

Αναγκαστική αντικατάσταση αρχείων εξόδου. Κανονικά, το bzip2 δεν θα αντικαταστήσει τα υπάρχοντα αρχεία εξόδου. Επίσης αναγκάζει το bzip2 να σπάσει σκληρούς συνδέσμους σε αρχεία, κάτι που διαφορετικά δεν θα έκανε.

Το bzip2 συνήθως αρνείται να αποσυμπιέσει αρχεία που δεν έχουν τα σωστά μαγικά byte κεφαλίδας. Εάν εξαναγκαστεί (-f), ωστόσο, θα περάσει τέτοια αρχεία μέσα από μη τροποποιημένα. Έτσι συμπεριφέρεται το GNU gzip.

-k --κρατώ Διατηρήστε (μην διαγράψετε) τα αρχεία εισόδου κατά τη συμπίεση ή την αποσυμπίεση.
-s --μικρό

Μειώστε τη χρήση μνήμης, για συμπίεση, αποσυμπίεση και δοκιμή. Τα αρχεία αποσυμπιέζονται και ελέγχονται χρησιμοποιώντας έναν τροποποιημένο αλγόριθμο που απαιτεί μόνο 2,5 byte ανά μπλοκ byte. Αυτό σημαίνει ότι κάθε αρχείο μπορεί να αποσυμπιεστεί σε 2300k μνήμης, αν και με περίπου τη μισή ταχύτητα της κανονικής.

Κατά τη συμπίεση, το -s επιλέγει ένα μέγεθος μπλοκ 200k, το οποίο περιορίζει τη χρήση μνήμης περίπου στο ίδιο μέγεθος, σε βάρος του λόγου συμπίεσής σας. Εν ολίγοις, εάν το μηχάνημά σας έχει χαμηλή μνήμη (8 megabyte ή λιγότερο), χρησιμοποιήστε -s για τα πάντα. Δείτε τη ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ παρακάτω.

-q --ήσυχο Καταργήστε τα μη ουσιώδη προειδοποιητικά μηνύματα. Μηνύματα που σχετίζονται με σφάλματα I/O και άλλα κρίσιμα συμβάντα δεν θα αποσιωπούνται.
-v --περιεκτική Πολύλογος mode -- εμφανίζει την αναλογία συμπίεσης για κάθε αρχείο που υποβάλλεται σε επεξεργασία. Περαιτέρω -v αυξάνουν το επίπεδο λεκτικότητας, εκτοξεύοντας πολλές πληροφορίες που ενδιαφέρουν πρωτίστως για διαγνωστικούς σκοπούς.
-L --άδεια Εμφανίστε την έκδοση λογισμικού, τους όρους και τις προϋποθέσεις άδειας χρήσης.
-V --έκδοση
Εμφανίστε την έκδοση λογισμικού, τους όρους και τις προϋποθέσεις άδειας χρήσης.
-1 ή -9

Ρυθμίστε το μέγεθος του μπλοκ σε 100 k, 200 k.. 900 k κατά τη συμπίεση. Δεν έχει αποτέλεσμα κατά την αποσυμπίεση.
--γρήγορα (ψευδώνυμο για -1) και --καλύτερος (ψευδώνυμο για -9) είναι κυρίως για συμβατότητα GNU gzip. Συγκεκριμένα, --γρήγορα δεν κάνει τα πράγματα σημαντικά πιο γρήγορα. Και --καλύτερος επιλέγει απλώς την προεπιλεγμένη συμπεριφορά.

Αντιμετωπίζει όλα τα επόμενα ορίσματα ως ονόματα αρχείων, ακόμα κι αν ξεκινούν με παύλα. Αυτό γίνεται για να μπορείτε να χειρίζεστε αρχεία με ονόματα που αρχίζουν με παύλα, για παράδειγμα: bzip2 -- -myfilename.

--επαναληπτικό-γρήγορο και --επαναληπτικό-καλύτερο είναι περιττές στις εκδόσεις 0.9.5 και νεότερες. Παρείχαν κάποιο χονδρό έλεγχο της συμπεριφοράς του αλγορίθμου ταξινόμησης σε προηγούμενες εκδόσεις, κάτι που μερικές φορές ήταν χρήσιμο. Οι εκδόσεις 0.9.5 και άνω έχουν έναν βελτιωμένο αλγόριθμο που καθιστά αυτές τις σημαίες άσχετες.

Χρησιμοποιήστε το άνθρωπος εντολή (% άνδρας) για να δείτε πώς χρησιμοποιείται μια εντολή στον συγκεκριμένο υπολογιστή σας.

Εξερευνώντας τη συμπίεση του bunzip2

bzip2 συμπιέζει αρχεία χρησιμοποιώντας τον αλγόριθμο συμπίεσης κειμένου ταξινόμησης μπλοκ Burrows-Wheeler και κωδικοποίηση Huffman. Συμπίεση είναι γενικά πολύ καλύτερο από αυτό που επιτυγχάνεται από πιο συμβατικούς συμπιεστές που βασίζονται σε LZ77/LZ78 και προσεγγίζει την απόδοση της οικογένειας στατιστικών συμπιεστών PPM.

Οι επιλογές της γραμμής εντολών είναι σκόπιμα πολύ παρόμοιες με αυτές του GNU gzip, αλλά δεν είναι πανομοιότυπα.

bzip2 αναμένει μια λίστα ονομάτων αρχείων που θα συνοδεύει τις σημαίες της γραμμής εντολών. Κάθε αρχείο αντικαθίσταται από μια συμπιεσμένη έκδοση του εαυτού του, με το όνομα "original_name.bz2". Κάθε συμπιεσμένο αρχείο έχει την ίδια ημερομηνία τροποποίησης, δικαιώματα και, όποτε είναι δυνατόν, ιδιοκτησία με το αντίστοιχο πρωτότυπο, έτσι ώστε αυτές οι ιδιότητες να μπορούν να αποκατασταθούν σωστά κατά το χρόνο αποσυμπίεσης.

Linux bunzip2

Πότε να χρησιμοποιήσετε τη σημαία -f

Ο χειρισμός των ονομάτων αρχείων είναι αφελής υπό την έννοια ότι δεν υπάρχει μηχανισμός για τη διατήρηση των αρχικών ονομάτων αρχείων, των δικαιωμάτων, ιδιοκτησίες ή ημερομηνίες σε συστήματα αρχείων που δεν έχουν αυτές τις έννοιες ή έχουν σοβαρούς περιορισμούς μήκους ονόματος αρχείου, όπως π.χ. MS-DOS.

bzip2 και bunzip2 από προεπιλογή δεν θα αντικαταστήσει τα υπάρχοντα αρχεία. Εάν θέλετε να συμβεί αυτό, καθορίστε το -φά σημαία.

Εάν δεν έχουν καθοριστεί ονόματα αρχείων, bzip2 συμπιέζει από την τυπική είσοδο στην τυπική έξοδο. Σε αυτήν την περίπτωση, bzip2 θα αρνηθεί να εγγράψει συμπιεσμένη έξοδο σε ένα τερματικό, καθώς αυτό θα ήταν εντελώς ακατανόητο και επομένως άσκοπο.

Linux bunzip2 πολλαπλά αρχεία

bunzip2 (ή bzip2 -d) αποσυμπιέζει όλα τα καθορισμένα αρχεία. Αρχεία που δεν δημιουργήθηκαν από bzip2 θα εντοπιστεί και θα αγνοηθεί και θα εκδοθεί μια προειδοποίηση. bzip2 προσπαθεί να μαντέψει το όνομα αρχείου για το αποσυμπιεσμένο αρχείο από αυτό του συμπιεσμένου αρχείου ως εξής:

  • filename.bz2 γίνεται όνομα αρχείου
  • Το filename.bz γίνεται όνομα αρχείου
  • filename.tbz2 γίνεται filename.tar
  • Το filename.tbz γίνεται filename.tar
  • anyothername γίνεται anyothername.out

Εάν το αρχείο δεν τελειώνει σε ένα από τα αναγνωρισμένα επεκτάσεις αρχείωνΒΖ2, BZ, TBZ2, ή TBZbzip2 παραπονιέται ότι δεν μπορεί να μαντέψει το όνομα του αρχικού αρχείου και χρησιμοποιεί το αρχικό όνομα με .έξω προσηρτημένος.

Linux bunzip2 αποσυμπίεση tarball

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

bunzip2 θα αποσυμπιέσει σωστά ένα αρχείο που είναι η συνένωση δύο ή περισσότερων συμπιεσμένων αρχείων. Το αποτέλεσμα είναι η συνένωση των αντίστοιχων ασυμπίεστων αρχείων. Δοκιμή ακεραιότητας () των συζευγμένων συμπιεσμένων αρχείων υποστηρίζεται επίσης.

Χρησιμοποιώντας τη σημαία -c για τυπική έξοδο

Μπορείτε επίσης να συμπιέσετε ή να αποσυμπιέσετε αρχεία στην τυπική έξοδο δίνοντας το -ντο σημαία. Πολλά αρχεία μπορούν να συμπιεστούν και να αποσυμπιεστούν με αυτόν τον τρόπο. Οι προκύπτουσες έξοδοι τροφοδοτούνται διαδοχικά στο stdout. Η συμπίεση πολλαπλών αρχείων με αυτόν τον τρόπο δημιουργεί μια ροή που περιέχει πολλαπλές αναπαραστάσεις συμπιεσμένων αρχείων.

Ένα τέτοιο ρεύμα μπορεί να αποσυμπιεστεί σωστά μόνο από bzip2έκδοση 0.9.0 ή νεότερη. Προηγούμενες εκδόσεις του bzip2 θα σταματήσει μετά την αποσυμπίεση του πρώτου αρχείου στη ροή.

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

bzcat (ή bzip2 -dc) αποσυμπιέζει όλα τα καθορισμένα αρχεία στην τυπική έξοδο.

bzip2 θα διαβάσει ορίσματα από τις μεταβλητές περιβάλλοντος BZIP2 και BZIP, με αυτή τη σειρά και θα τα επεξεργαστεί πριν διαβάσει οποιαδήποτε ορίσματα από τη γραμμή εντολών. Αυτό παρέχει έναν βολικό τρόπο παροχής προεπιλεγμένων ορισμάτων.

Η συμπίεση εκτελείται πάντα, ακόμα κι αν το συμπιεσμένο αρχείο είναι ελαφρώς μεγαλύτερο από το πρωτότυπο. Τα αρχεία μικρότερα από περίπου 100 byte τείνουν να γίνονται μεγαλύτερα επειδή ο μηχανισμός συμπίεσης έχει σταθερή επιβάρυνση στην περιοχή των 50 byte. Τα τυχαία δεδομένα (συμπεριλαμβανομένης της εξόδου των περισσότερων συμπιεστών αρχείων) κωδικοποιούνται με περίπου 8,05 bit ανά byte, δίνοντας μια επέκταση περίπου 0,5 τοις εκατό.

bzip2 και CRC

Ως αυτοέλεγχος για την προστασία σας, bzip2 χρησιμοποιεί CRC 32-bit για να βεβαιωθεί ότι η αποσυμπιεσμένη έκδοση ενός αρχείου είναι πανομοιότυπη με την αρχική. Αυτό προστατεύει από την καταστροφή των συμπιεσμένων δεδομένων και από μη ανιχνευμένα σφάλματα bzip2 (ελπίζω πολύ απίθανο).

Οι πιθανότητες καταστροφής δεδομένων να μην εντοπιστούν είναι μικροσκοπικές, περίπου μία πιθανότητα στα τέσσερα δισεκατομμύρια για κάθε αρχείο που υποβάλλεται σε επεξεργασία. Λάβετε υπόψη, ωστόσο, ότι ο έλεγχος γίνεται κατά την αποσυμπίεση, επομένως μπορεί να σας πει μόνο ότι κάτι δεν πάει καλά. Δεν μπορεί να σας βοηθήσει να ανακτήσετε τα αρχικά ασυμπίεστα δεδομένα.

Μπορείς να χρησιμοποιήσεις bzip2recover για να προσπαθήσετε να ανακτήσετε δεδομένα από κατεστραμμένα αρχεία.