Εγχειρίδια για τη γραμμή εντολών

Man » Διαδικτυακό εγχειρίδιο bzip2 - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man του bzip2

🌍
bzip2, bunzip2 - ένας συμπιεστής αρχείων που χρησιμοποιεί αλγόριθμο ταξινόμησης μπλοκ Burrows-Wheeler, v1.0.8
bzcat - αποσυμπιέζει αρχεία στην τυπική έξοδο
bzip2recover - ανακτά δεδομένα από κατεστραμμένα αρχεία bzip2

ΣΥΝΤΑΞΗ

bzip2 [ -cdfkqstvzVL123456789 ] [ ονόματα αρχείων ... ]
bzip2 [ -h|--help ]
bunzip2 [ -fkvsVL ] [ ονόματα αρχείων ... ]
bunzip2 [ -h|--help ]
bzcat [ -s ] [ ονόματα αρχείων ... ]
bzcat [ -h|--help ]
bzip2recover όνομα αρχείου

ΠΕΡΙΓΡΑΦΗ

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

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

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

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

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

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

όνομα_αρχείου.bz2   γίνεται   όνομα_αρχείου
όνομα_αρχείου.bz    γίνεται   όνομα_αρχείου
όνομα_αρχείου.tbz2  γίνεται   όνομα_αρχείου.tar
όνομα_αρχείου.tbz   γίνεται   όνομα_αρχείου.tar
οποιοδήποτε_άλλο_όνομα  γίνεται   οποιοδήποτε_άλλο_όνομα.out

Εάν το αρχείο δεν τελειώνει με ένα από τα αναγνωρισμένα επιθήματα, .bz2, .bz, .tbz2 ή .tbz, το bzip2 παραπονιέται ότι δεν μπορεί να μαντέψει το όνομα του αρχικού αρχείου και χρησιμοποιεί το αρχικό όνομα με το .out προσάρτημα.

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

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

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

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

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

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

Ως αυτοέλεγχο για την προστασία σας, το bzip2 χρησιμοποιεί CRCs 32 bit για να διασφαλίσει ότι η αποσυμπιεσμένη έκδοση ενός αρχείου είναι πανομοιότυπη με το αρχικό. Αυτό προστατεύει από διαφθορά των συμπιεσμένων δεδομένων, καθώς και από μη ανιχνευμένα σφάλματα στο bzip2 (ελπίζουμε πολύ απίθανο). Οι πιθανότητες διαφθοράς δεδομένων που δεν ανιχνεύονται είναι μικροσκοπικές, περίπου μία στις τέσσερις δισεκατομμύρια για κάθε αρχείο που επεξεργάζεται. Να γνωρίζετε, ωστόσο, ότι ο έλεγχος πραγματοποιείται κατά την αποσυμπίεση, επομένως μπορεί μόνο να σας πει ότι κάτι δεν πάει καλά. Δεν μπορεί να σας βοηθήσει να ανακτήσετε τα αρχικά αποσυμπιεσμένα δεδομένα. Μπορείτε να χρησιμοποιήσετε το bzip2recover για να προσπαθήσετε να ανακτήσετε δεδομένα από κατεστραμμένα αρχεία.

Τιμές επιστροφής: 0 για μια κανονική έξοδο, 1 για περιβαλλοντικά προβλήματα (αρχείο που δεν βρέθηκε, μη έγκυρες σημαίες, σφάλματα εισόδου/εξόδου κ.λπ.), 2 για να υποδείξει ένα κατεστραμμένο συμπιεσμένο αρχείο, 3 για ένα εσωτερικό σφάλμα συνέπειας (π.χ., σφάλμα) που προκάλεσε την διακοπή του bzip2.

ΕΠΙΛΟΓΕΣ

-c --stdout
Συμπιέστε ή αποσυμπιέστε στην τυπική έξοδο.

-d --decompress
Αναγκάστε την αποσυμπίεση. Το bzip2, το bunzip2 και το bzcat είναι στην πραγματικότητα το ίδιο πρόγραμμα, και η απόφαση σχετικά με το ποιες ενέργειες θα εκτελεστούν γίνεται με βάση το όνομα που χρησιμοποιείται. Αυτή η επιλογή αναιρεί αυτόν τον μηχανισμό και αναγκάζει το bzip2 να αποσυμπιέσει.

-z --compress
Το αντίθετο της -d: αναγκάζει τη συμπίεση, ανεξάρτητα από το όνομα που χρησιμοποιείται για την κλήση.

-t --test
Ελέγξτε την ακεραιότητα των καθορισμένων αρχείων, αλλά μην τα αποσυμπιέσετε. Αυτό εκτελεί στην πραγματικότητα μια δοκιμαστική αποσυμπίεση και απορρίπτει το αποτέλεσμα.

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

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

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

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

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

-q --quiet
Καταστέλλει μη ουσιαστικά μηνύματα προειδοποίησης. Τα μηνύματα σχετικά με σφάλματα εισόδου/εξόδου και άλλα κρίσιμα γεγονότα δεν θα κατασταλούν.

-v --verbose
Λειτουργία λεπτομερούς εμφάνισης – εμφανίζει την αναλογία συμπίεσης για κάθε αρχείο που υποβάλλεται σε επεξεργασία. Η περαιτέρω χρήση του -v αυξάνει το επίπεδο λεπτομέρειας, εμφανίζοντας πολλές πληροφορίες που ενδιαφέρουν κυρίως για σκοπούς διαγνωστικού ελέγχου.

-h --help
Εμφανίζει ένα μήνυμα βοήθειας και εξέρχεται.

-L --license -V --version
Εμφανίζει την έκδοση του λογισμικού, τους όρους και τις προϋποθέσεις της άδειας χρήσης.

-1 (ή --fast) έως -9 (ή --best)
Ορίζει το μέγεθος του μπλοκ σε 100 KB, 200 KB... 900 KB κατά τη συμπίεση. Δεν έχει καμία επίδραση κατά την αποσυμπίεση. Δείτε την ενότητα ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ παρακάτω. Τα ψευδώνυμα --fast και --best χρησιμοποιούνται κυρίως για συμβατότητα με το GNU gzip. Συγκεκριμένα, το --fast δεν κάνει τα πράγματα σημαντικά πιο γρήγορα. Και το --best απλώς επιλέγει την προεπιλεγμένη συμπεριφορά.

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

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Το bzip2 συμπιέζει μεγάλα αρχεία σε μπλοκ. Το μέγεθος του μπλοκ επηρεάζει τόσο την αναλογία συμπίεσης που επιτυγχάνεται όσο και την ποσότητα μνήμης που απαιτείται για συμπίεση και αποσυμπίεση. Οι σημαίες -1 έως -9 καθορίζουν το μέγεθος του μπλοκ να είναι 100.000 byte έως 900.000 byte (η προεπιλογή) αντίστοιχα. Κατά τη διάρκεια της αποσυμπίεσης, το μέγεθος του μπλοκ που χρησιμοποιείται για τη συμπίεση διαβάζεται από την κεφαλίδα του συμπιεσμένου αρχείου και το bunzip2 στη συνέχεια διαθέτει μόνο αρκετή μνήμη για να αποσυμπιέσει το αρχείο. Επειδή τα μεγέθη των μπλοκ αποθηκεύονται σε συμπιεσμένα αρχεία, προκύπτει ότι οι σημαίες -1 έως -9 είναι άσχετες και επομένως αγνοούνται κατά την αποσυμπίεση.

Οι απαιτήσεις συμπίεσης και αποσυμπίεσης, σε byte, μπορούν να εκτιμηθούν ως εξής:

Συμπίεση: 400 k + (8 x μέγεθος μπλοκ)

Αποσυμπίεση: 100 k + (4 x μέγεθος μπλοκ), ή
100k + (2.5 x μέγεθος μπλοκ)

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

Για αρχεία συμπιεσμένα με το προεπιλεγμένο μέγεθος μπλοκ των 900 k, το bunzip2 θα απαιτήσει περίπου 3700 kbytes για να αποσυμπιέσει. Για να υποστηρίξει την αποσυμπίεση οποιουδήποτε αρχείου σε ένα μηχάνημα 4 megabyte, το bunzip2 διαθέτει μια επιλογή για να αποσυμπιέσει χρησιμοποιώντας περίπου το μισό αυτής της ποσότητας μνήμης, περίπου 2300 kbytes. Η ταχύτητα αποσυμπίεσης μειώνεται επίσης κατά το ήμισυ, επομένως θα πρέπει να χρησιμοποιείτε αυτήν την επιλογή μόνο όταν είναι απαραίτητο. Η σχετική σημαία είναι η -s.

Σε γενικές γραμμές, προσπαθήστε να χρησιμοποιείτε το μεγαλύτερο μέγεθος μπλοκ που επιτρέπουν οι περιορισμοί μνήμης, επειδή αυτό μεγιστοποιεί τη συμπίεση που επιτυγχάνεται. Η ταχύτητα συμπίεσης και αποσυμπίεσης δεν επηρεάζεται ουσιαστικά από το μέγεθος μπλοκ.

Ένα άλλο σημαντικό σημείο αφορά αρχεία που χωράνε σε ένα μόνο μπλοκ - που σημαίνει τα περισσότερα αρχεία που θα συναντήσετε χρησιμοποιώντας ένα μεγάλο μέγεθος μπλοκ. Η ποσότητα της πραγματικής μνήμης που χρησιμοποιείται είναι ανάλογη με το μέγεθος του αρχείου, καθώς το αρχείο είναι μικρότερο από ένα μπλοκ. Για παράδειγμα, η συμπίεση ενός αρχείου 20000 byte με τη σημαία -9 θα προκαλέσει τον συμπιεστή να διαθέσει περίπου 7600 k μνήμης, αλλά θα χρησιμοποιήσει μόνο 400 k + 20000 * 8 = 560 kbytes. Ομοίως, ο αποσυμπιεστής θα διαθέσει 3700k αλλά θα χρησιμοποιήσει μόνο 100 k + 20000 * 4 = 180 kbytes.

Ακολουθεί ένας πίνακας που συνοψίζει τη μέγιστη χρήση μνήμης για διαφορετικά μεγέθη μπλοκ. Επίσης, καταγράφεται το συνολικό συμπιεσμένο μέγεθος για 14 αρχεία από το Calgary Text Compression Corpus, συνολικού μεγέθους 3.141.622 byte. Αυτή η στήλη παρέχει μια ιδέα για το πώς η συμπίεση ποικίλλει ανάλογα με το μέγεθος μπλοκ. Αυτές οι τιμές τείνουν να υποτιμούν το πλεονέκτημα των μεγαλύτερων μεγεθών μπλοκ για μεγαλύτερα αρχεία, επειδή το Corpus κυριαρχείται από μικρότερα αρχεία.

Συμπίεση Αποσυμπίεση Αποσυμπίεση Μέγεθος Σημαία χρήση χρήση -s χρήση Corpus

-1      1200k       500k         350k      914704
-2      2000k       900k         600k      877703
-3      2800k      1300k         850k      860338
-4      3600k      1700k        1100k      846899
-5      4400k      2100k        1350k      845160
-6      5200k      2500k        1600k      838626
-7      6100k      2900k        1850k      834096
-8      6800k      3300k        2100k      828642
-9      7600k      3700k        2350k      828642

ΑΝΑΚΤΗΣΗ ΔΕΔΟΜΕΝΩΝ ΑΠΟ ΚΑΚΟΒΟΥΛΑ ΑΡΧΕΙΑ

Το bzip2 συμπιέζει αρχεία σε μπλοκ, συνήθως 900 kbytes. Κάθε μπλοκ αντιμετωπίζεται ανεξάρτητα.

Εάν ένα σφάλμα μέσου ή μετάδοσης προκαλέσει ζημιά σε ένα αρχείο .bz2 πολλαπλών μπλοκ, ενδέχεται να είναι δυνατό να ανακτηθούν δεδομένα από τα μη κατεστραμμένα μπλοκ του αρχείου.


Η συμπιεσμένη αναπαράσταση κάθε μπλοκ οριοθετείται από ένα μοτίβο 48 bit, το οποίο καθιστά δυνατή την εύρεση των ορίων του μπλοκ με εύλογη βεβαιότητα. Κάθε μπλοκ διαθέτει επίσης το δικό του CRC 32 bit, έτσι ώστε τα κατεστραμμένα μπλοκ να μπορούν να διακρίνονται από τα άθικτα.

Το bzip2recover είναι ένα απλό πρόγραμμα, του οποίου ο σκοπός είναι να αναζητήσει μπλοκ σε αρχεία .bz2 και να γράψει κάθε μπλοκ σε ένα ξεχωριστό αρχείο .bz2. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε την εντολή bzip2 -t για να ελέγξετε την ακεραιότητα των αρχείων που προκύπτουν και να αποσυμπιέσετε αυτά που είναι άθικτα.

Το bzip2recover παίρνει ένα μόνο όρισμα, το όνομα του κατεστραμμένου αρχείου, και γράφει μια σειρά αρχείων "rec00001file.bz2", "rec00002file.bz2" κ.λπ., που περιέχουν τα εξαγόμενα μπλοκ. Τα ονόματα των αρχείων εξόδου έχουν σχεδιαστεί έτσι ώστε, κατά την επεξεργασία τους, η χρήση χαρακτήρων-μπαλαντέρ (wildcards) στην επόμενη φάση – για παράδειγμα, "bzip2 -dc rec*file.bz2 > recovered_data" – να επεξεργάζεται τα αρχεία με τη σωστή σειρά.

Το bzip2recover θα είναι πιο χρήσιμο για την αντιμετώπιση μεγάλων αρχείων .bz2, καθώς αυτά θα περιέχουν πολλά μπλοκ. Είναι σαφώς άσκοπο να το χρησιμοποιήσετε σε κατεστραμμένα αρχεία ενός μόνο μπλοκ, επειδή ένα κατεστραμμένο μπλοκ δεν μπορεί να ανακτηθεί. Εάν θέλετε να ελαχιστοποιήσετε την πιθανή απώλεια δεδομένων λόγω σφαλμάτων στα μέσα αποθήκευσης ή κατά τη μεταφορά, ίσως θα ήταν καλό να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα μικρότερο μέγεθος μπλοκ κατά τη συμπίεση.

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗΝ ΑΠΟΔΟΣΗ

Η φάση ταξινόμησης της συμπίεσης συγκεντρώνει παρόμοιες αλυσίδες χαρακτήρων στο αρχείο. Λόγω αυτού, τα αρχεία που περιέχουν πολύ μεγάλες επαναλήψεις συμβόλων, όπως το "aabaabaabaab..." (επαναλαμβανόμενο αρκετές εκατοντάδες φορές), ενδέχεται να συμπιέζονται πιο αργά από το κανονικό. Οι εκδόσεις 0.9.5 και νεότερες έχουν πολύ καλύτερη απόδοση από τις προηγούμενες εκδόσεις σε αυτό το θέμα. Η αναλογία μεταξύ της χειρότερης και της μέσης περίπτωσης του χρόνου συμπίεσης είναι της τάξης του 10:1. Για τις προηγούμενες εκδόσεις, αυτός ο αριθμός ήταν περίπου 100:1. Μπορείτε να χρησιμοποιήσετε την επιλογή -vvvv για να παρακολουθείτε την πρόοδο με μεγάλη λεπτομέρεια, εάν θέλετε.

Η ταχύτητα αποσυμπίεσης δεν επηρεάζεται από αυτά τα φαινόμενα.

Το bzip2 συνήθως διαθέτει αρκετά megabytes μνήμης για να λειτουργήσει και στη συνέχεια τη χρησιμοποιεί με αρκετά τυχαίο τρόπο. Αυτό σημαίνει ότι η απόδοση, τόσο για τη συμπίεση όσο και για την αποσυμπίεση, καθορίζεται σε μεγάλο βαθμό από την ταχύτητα με την οποία ο υπολογιστής σας μπορεί να εξυπηρετήσει τις ελλείψεις της προσωρινής μνήμης (cache misses). Λόγω αυτού, μικρές αλλαγές στον κώδικα για τη μείωση του ρυθμού ελλείψεων της προσωρινής μνήμης έχουν αποδειχθεί ότι δίνουν δυσανάλογα μεγάλες βελτιώσεις στην απόδοση. Φαντάζομαι ότι το bzip2 θα έχει την καλύτερη απόδοση σε υπολογιστές με πολύ μεγάλη προσωρινή μνήμη.

ΠΡΟΕΙΔΟΠΟΙΗΣΕΙΣ

Τα μηνύματα σφάλματος εισόδου/εξόδου δεν είναι τόσο χρήσιμα όσο θα μπορούσαν να είναι. Το bzip2 προσπαθεί πολύ να εντοπίσει σφάλματα εισόδου/εξόδου και να τερματίσει τη λειτουργία με ασφάλεια, αλλά οι λεπτομέρειες σχετικά με το τι είναι το πρόβλημα φαίνονται μερικές φορές μάλλον παραπλανητικές.

Αυτή η σελίδα εγχειριδίου αφορά την έκδοση 1.0.8 του bzip2. Τα συμπιεσμένα δεδομένα που δημιουργούνται από αυτήν την έκδοση είναι πλήρως συμβατά προς τα εμπρός και προς τα πίσω με τις προηγούμενες δημόσιες εκδόσεις, τις εκδόσεις 0.1pl2, 9.0, 0.9.5, 1.0.0, 1.0.1 και 1.0.2 και άνω, αλλά με την ακόλουθη εξαίρεση: Οι εκδόσεις 0.9.0 και νεότερες μπορούν να διορθώσουν σωστά την αποσυμπίεση πολλαπλών συνεχόμενων συμπιεσμένων αρχείων. Η έκδοση 0.1pl2 δεν μπορεί να το κάνει αυτό. θα σταματήσει μετά την αποσυμπίεση μόνο του πρώτου αρχείου της ροής.


Οι εκδόσεις του bzip2recover πριν από την 1.0.2 χρησιμοποιούσαν ακέραιους αριθμούς 32 bit για να αναπαραστήσουν θέσεις bit σε συμπιεσμένα αρχεία, επομένως δεν μπορούσαν να χειριστούν συμπιεσμένα αρχεία μεγαλύτερα από 512 megabyte. Οι εκδόσεις 0.2 και μεταγενέστερες χρησιμοποιούν ακέραιους αριθμούς 64 bit σε ορισμένες πλατφόρμες που τους υποστηρίζουν (στόχους που υποστηρίζονται από το GNU και τα Windows). Για να διαπιστώσετε αν το bzip2recover έχει κατασκευαστεί με αυτόν τον περιορισμό, εκτελέστε το χωρίς ορίσματα. Σε κάθε περίπτωση, μπορείτε να δημιουργήσετε μόνοι σας μια έκδοση χωρίς περιορισμούς, εάν μπορείτε να το επανασυντάξετε με την επιλογή MaybeUInt64 να είναι ένας ακέραιος αριθμός 64 bit χωρίς πρόσημο.

ΣΥΓΓΡΑΦΕΑΣ

Julian Seward, _.

https://sourceware.org/bzip2/

Οι ιδέες που ενσωματώνονται στο bzip2 οφείλονται (τουλάχιστον) στα ακόλουθα άτομα: Michael Burrows και David Wheeler (για τη μετατροπή ταξινόμησης μπλοκ), David Wheeler (ξανά, για τον κωδικοποιητή Huffman), Peter Fenwick (για το δομημένο μοντέλο κωδικοποίησης στο αρχικό bzip και πολλές βελτιώσεις) και Alistair Moffat, Radford Neal και Ian Witten (για τον αριθμητικό κωδικοποιητή στο αρχικό bzip). Είμαι πολύ ευγνώμων για τη βοήθεια, την υποστήριξη και τις συμβουλές τους. Δείτε το εγχειρίδιο στην πηγαία διανομή για αναφορές σε πηγές τεκμηρίωσης. Ο Christian von Roques με ενθάρρυνε να αναζητήσω ταχύτερους αλγορίθμους ταξινόμησης, ώστε να επιταχυνθεί η συμπίεση. Ο Bela Lubkin με ενθάρρυνε να βελτιώσω την απόδοση συμπίεσης στη χειρότερη περίπτωση. Η Donna Robinson έκανε το XML της τεκμηρίωσης. Τα σενάρια bz* προέρχονται από αυτά του GNU gzip. Πολλοί άνθρωποι έστειλαν διορθώσεις, βοήθησαν με προβλήματα φορητότητας, διέθεσαν μηχανήματα, έδωσαν συμβουλές και ήταν γενικά χρήσιμοι.