Zcat - εντολή Linux - εντολή Unix

Ονομα

gzip, gunzip, zcat - συμπίεση ή επέκταση αρχείων

Σύνοψη

gzip [ -acdfhlLnNrtvV19 ] [ -S προσθήκη ] [ όνομα ... ]
gunzip [ -acfhlLnNrtvV ] [ -S προσθήκη ] [ όνομα ... ]
zcat [ -fhLV ] [ όνομα ... ]

Περιγραφή

Το Gzip μειώνει το μέγεθος των αρχείων που ονομάζονται χρησιμοποιώντας την κωδικοποίηση Lempel-Ziv (LZ77). Όποτε είναι δυνατόν, κάθε αρχείο αντικαθίσταται από ένα με την επέκταση .gz , διατηρώντας παράλληλα τους ίδιους τρόπους ιδιοκτησίας, τους χρόνους πρόσβασης και τροποποίησης. (Η προεπιλεγμένη επέκταση είναι -gz για VMS, z για MSDOS, OS / 2 FAT, Windows NT FAT και Atari.) Εάν δεν έχουν οριστεί αρχεία ή εάν ένα όνομα αρχείου είναι "-", η τυπική είσοδος συμπιέζεται στο πρότυπο παραγωγή. Το Gzip θα επιχειρήσει μόνο να συμπιέσει κανονικά αρχεία. Συγκεκριμένα, θα αγνοήσει τους συμβολικούς δεσμούς.

Εάν το όνομα του συμπιεσμένου αρχείου είναι πολύ μεγάλο για το σύστημα αρχείων του, το gzip το περικόπτει. Το Gzip επιχειρεί να κόψει μόνο τα τμήματα του ονόματος αρχείου που είναι μεγαλύτερα από 3 χαρακτήρες. (Ένα τμήμα οριοθετείται από κουκίδες.) Εάν το όνομα αποτελείται μόνο από μικρά κομμάτια, τα μακρύτερα κομμάτια είναι κομμένα. Για παράδειγμα, αν τα ονόματα αρχείων περιορίζονται σε 14 χαρακτήρες, το gzip.msdos.exe συμπιέζεται σε gzi.msd.exe.gz. Τα ονόματα δεν περικόπτονται σε συστήματα που δεν έχουν όριο στο μήκος του ονόματος αρχείου.

Από προεπιλογή, το gzip διατηρεί το αρχικό όνομα αρχείου και τη χρονική σήμανση στο συμπιεσμένο αρχείο. Αυτά χρησιμοποιούνται κατά την αποσυμπίεση του αρχείου με την επιλογή -N . Αυτό είναι χρήσιμο όταν το όνομα του συμπιεσμένου αρχείου ήταν περικομμένο ή όταν η χρονική σφραγίδα δεν διατηρήθηκε μετά από μεταφορά αρχείου.

Τα συμπιεσμένα αρχεία μπορούν να αποκατασταθούν στην αρχική τους μορφή χρησιμοποιώντας gzip -d ή gunzip ή zcat. Εάν το αρχικό όνομα που είναι αποθηκευμένο στο συμπιεσμένο αρχείο δεν είναι κατάλληλο για το σύστημα αρχείων του, δημιουργείται ένα νέο όνομα από το αρχικό όνομα για να είναι νόμιμο.

Το gunzip παίρνει μια λίστα αρχείων στη γραμμή εντολών του και αντικαθιστά κάθε αρχείο του οποίου το όνομα τελειώνει με .gz, -gz, .z, -z, _z ή .Z και το οποίο ξεκινάει με τον σωστό μαγικό αριθμό με ένα μη συμπιεσμένο αρχείο χωρίς την αρχική επέκταση . gunzip αναγνωρίζει επίσης τις πρόσθετες επεκτάσεις .tgz και .taz ως shorthands για .tar.gz και .tar.Z αντίστοιχα. Κατά τη συμπίεση, το gzip χρησιμοποιεί την επέκταση .tgz αν είναι απαραίτητο αντί να κόβει ένα αρχείο με επέκταση .tar .

gunzip μπορεί να αποσυμπιέσει σήμερα τα αρχεία που δημιουργούνται από το gzip, zip, compress, compress -H ή pack. Η ανίχνευση της μορφής εισόδου είναι αυτόματη. Όταν χρησιμοποιείτε τις δύο πρώτες μορφές, το gunzip ελέγχει ένα CRC 32 bit. Για το πακέτο, το gunzip ελέγχει το ασυμπίεστο μήκος. Η τυπική μορφή συμπίεσης δεν σχεδιάστηκε για να επιτρέπει ελέγχους συνέπειας. Ωστόσο, το gunzip μπορεί μερικές φορές να εντοπίσει ένα κακό αρχείο .Z. Εάν εμφανιστεί ένα σφάλμα κατά την αποσυμπίεση ενός αρχείου .Z , μην υποθέσετε ότι το αρχείο .Z είναι σωστό απλώς και μόνο επειδή η τυπική αποσυμπίεση δεν διαμαρτύρεται. Αυτό γενικά σημαίνει ότι το πρότυπο αποσυμπίεσης δεν ελέγχει την είσοδό του και ευτυχώς παράγει έξοδο σκουπιδιών. Η μορφή συμπίεσης SCO -H (μέθοδος συμπίεσης lzh) δεν περιλαμβάνει CRC, αλλά επιτρέπει επίσης ορισμένους ελέγχους συνέπειας.

Τα αρχεία που δημιουργούνται από το zip μπορούν να αποσυνδεθούν από το gzip μόνο αν έχουν συμπιεστεί ένα μόνο μέλος με τη μέθοδο 'deflation'. Αυτή η λειτουργία προορίζεται μόνο για τη μετατροπή των αρχείων tar.zip στη μορφή tar.gz. Για να εξαγάγετε αρχεία zip με αρκετά μέλη, χρησιμοποιήστε το unzip αντί gunzip.

zcat είναι ταυτόσημο με το gunzip -c. (Σε ορισμένα συστήματα, το zcat μπορεί να εγκατασταθεί ως gzcat για να διατηρήσει τον αρχικό σύνδεσμο για συμπίεση.) Το zcat αποσυμπιέζει είτε μια λίστα αρχείων στη γραμμή εντολών είτε την τυπική είσοδο και γράφει τα μη συμπιεσμένα δεδομένα στην τυπική έξοδο. Το zcat θα αποσυμπιέσει τα αρχεία που έχουν τον σωστό αριθμό μαγείας αν έχουν κατάληξη .gz ή όχι.

Το Gzip χρησιμοποιεί τον αλγόριθμο Lempel-Ziv που χρησιμοποιείται σε φερμουάρ και PKZIP. Η ποσότητα συμπίεσης που λαμβάνεται εξαρτάται από το μέγεθος της εισόδου και τη διανομή των κοινών υποστυλωμάτων. Συνήθως, κείμενο όπως ο πηγαίος κώδικας ή το αγγλικό μειώνεται κατά 60-70%. Η συμπίεση είναι γενικά πολύ καλύτερη από αυτή που επιτυγχάνεται με το LZW (όπως χρησιμοποιείται στη συμπίεση ), την κωδικοποίηση Huffman (όπως χρησιμοποιείται στο πακέτο ) ή την προσαρμοστική κωδικοποίηση Huffman ( συμπαγής ).

Η συμπίεση πραγματοποιείται πάντα, ακόμα και αν το συμπιεσμένο αρχείο είναι ελαφρώς μεγαλύτερο από το πρωτότυπο. Η επέκταση της χειρότερης περίπτωσης είναι μερικά byte για την κεφαλίδα του αρχείου gzip, συν 5 byte κάθε μπλοκ των 32K ή αναλογία επέκτασης 0,015% για μεγάλα αρχεία. Σημειώστε ότι ο πραγματικός αριθμός των χρησιμοποιημένων μπλοκ δίσκων σχεδόν ποτέ δεν αυξάνεται. Το gzip διατηρεί τη λειτουργία, την ιδιοκτησία και τις χρονικές μνήμες των αρχείων κατά τη συμπίεση ή την αποσυμπίεση.

ΕΠΙΛΟΓΕΣ

-a -ascii

Λειτουργία κειμένου Ascii: μετατρέψτε τα άκρα των γραμμών χρησιμοποιώντας τοπικές συμβάσεις. Αυτή η επιλογή υποστηρίζεται μόνο σε ορισμένα συστήματα που δεν είναι Unix. Για το MSDOS, το CR LF μετατρέπεται σε LF όταν συμπιέζεται και το LF μετατρέπεται σε CR LF κατά την αποσυμπίεση.

-c -stdout -to-stdout

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

-d - αποσυμπίεση - απενεργοποίηση

Μειώνω την πίεση.

-f -force

Η συμπίεση ή η αποσυμπίεση δύναμης ακόμη και αν το αρχείο έχει πολλαπλούς συνδέσμους ή το αντίστοιχο αρχείο υπάρχει ήδη ή εάν τα συμπιεσμένα δεδομένα διαβάζονται από ή γράφονται σε ένα τερματικό. Αν τα δεδομένα εισόδου δεν είναι σε μορφή αναγνωρισμένη από το gzip και αν η επιλογή --stdout είναι επίσης διαθέσιμη, αντιγράψτε τα δεδομένα εισόδου χωρίς να αλλάξετε την τυπική έξοδο: αφήστε το zcat να συμπεριφέρεται ως cat. Εάν -f δεν δίνεται και όταν δεν εκτελείται στο παρασκήνιο, το gzip ζητά να επαληθεύσει εάν πρέπει να αντικατασταθεί ένα υπάρχον αρχείο.

-h --help

Εμφανίστε μια οθόνη βοήθειας και τερματίστε.

-l - λίστα

Για κάθε συμπιεσμένο αρχείο, ορίστε τα ακόλουθα πεδία:


συμπιεσμένο μέγεθος: μέγεθος του συμπιεσμένου αρχείου
μη συμπιεσμένο μέγεθος: μέγεθος του μη συμπιεσμένου αρχείου
αναλογία: λόγος συμπίεσης (0,0% εάν δεν είναι γνωστός)
uncompressed_name: όνομα του μη συμπιεσμένου αρχείου

Το μη συμπιεσμένο μέγεθος δίνεται ως -1 για αρχεία που δεν βρίσκονται σε μορφή gzip, όπως συμπιεσμένα αρχεία .Z. Για να αποκτήσετε το μη συμπιεσμένο μέγεθος για ένα τέτοιο αρχείο, μπορείτε να χρησιμοποιήσετε:


zcat file.Z | wc -c

Σε συνδυασμό με την επιλογή --verbose, εμφανίζονται επίσης τα ακόλουθα πεδία:


μέθοδος: μέθοδος συμπίεσης
crc: το CRC 32-bit των μη συμπιεσμένων δεδομένων
ημερομηνία & ώρα: χρονική σφραγίδα για το μη συμπιεσμένο αρχείο

Οι μέθοδοι συμπίεσης που υποστηρίζονται αυτήν τη στιγμή είναι deflate, compress, lzh (SCO compress -H) και pack. Το crc δίνεται ως ffffffff για ένα αρχείο που δεν είναι σε μορφή gzip.

Με το --name, το μη συμπιεσμένο όνομα, ημερομηνία και ώρα είναι αυτά που είναι αποθηκευμένα στο αρχείο συμπίεσης, αν υπάρχει.

Με --verbose, εμφανίζονται επίσης τα σύνολα μεγέθους και η αναλογία συμπίεσης για όλα τα αρχεία, εκτός αν είναι γνωστά κάποια μεγέθη. Με --quiet, οι γραμμές τίτλου και σύνολων δεν εμφανίζονται.

-L - άδεια

Εμφανίστε την άδεια gzip και τερματίστε.

-n --no-name

Κατά τη συμπίεση, μην αποθηκεύετε το αρχικό όνομα αρχείου και τη σφραγίδα χρόνου από προεπιλογή. (Το αρχικό όνομα αποθηκεύεται πάντοτε αν το όνομα έπρεπε να αποκοπεί.) Όταν αποσυμπιέζεται, μην επαναφέρετε το αρχικό όνομα αρχείου εάν υπάρχει (αφαιρέστε μόνο το επίθημα gzip από το συμπιεσμένο όνομα αρχείου) και μην επαναφέρετε την αρχική σφραγίδα ώρας εάν υπάρχει (αντιγράψτε το από το συμπιεσμένο αρχείο). Αυτή η επιλογή είναι η προεπιλογή κατά την αποσυμπίεση.

-N - όνομα

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

-q - καθαρή

Καταργήστε όλες τις προειδοποιήσεις.

-r - αναδρομική

Μετακινήστε τη δομή καταλόγου αναδρομικά. Αν κάποιο από τα ονόματα αρχείων που καθορίζονται στη γραμμή εντολών είναι κατάλογοι, το gzip θα κατέβει στον κατάλογο και θα συμπιέσει όλα τα αρχεία που εντοπίζει εκεί (ή θα τα αποσυμπιέσει στην περίπτωση του gunzip ).

-S .suf --suffix .suf

Χρησιμοποιήστε κατάληξη .suf αντί για .gz. Οποιαδήποτε κατάληξη μπορεί να δοθεί, αλλά επιθέματα διαφορετικά από τα .z και .gz θα πρέπει να αποφεύγονται για να αποφευχθεί η σύγχυση όταν τα αρχεία μεταφέρονται σε άλλα συστήματα. Μια μηδενική κατάληξη αναγκάζει το gunzip να δοκιμάσει την αποσυμπίεση σε όλα τα δεδομένα αρχεία ανεξάρτητα από το επίθημα, όπως στο:


gunzip -S "" * (*. * για το MSDOS)

Οι προηγούμενες εκδόσεις του gzip χρησιμοποίησαν το επίθημα .z. Αυτό άλλαξε για να αποφευχθεί μια σύγκρουση με το πακέτο (1).

-t - δοκιμή

Δοκιμή. Ελέγξτε την ακεραιότητα του συμπιεσμένου αρχείου.

-v - verbose

Πολύλογος. Εμφανίστε το όνομα και τη μείωση ποσοστού για κάθε αρχείο που έχει συμπιεστεί ή αποσυμπιεστεί.

-V - έκδοση

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

- # - γρήγορη - καλύτερη

Ρυθμίστε την ταχύτητα συμπίεσης χρησιμοποιώντας το καθορισμένο ψηφίο # , όπου -1 ή -fast δείχνει τη γρηγορότερη μέθοδο συμπίεσης (λιγότερη συμπίεση) και -9 ή -best υποδεικνύει τη βραδύτερη μέθοδο συμπίεσης (καλύτερη συμπίεση). Το προεπιλεγμένο επίπεδο συμπίεσης είναι -6 (δηλαδή, μεροληπτική προς υψηλή συμπίεση εις βάρος της ταχύτητας).

Προηγμένη χρήση

Πολλά συμπιεσμένα αρχεία μπορούν να συνδυαστούν. Σε αυτή την περίπτωση, το gunzip θα εξάγει όλα τα μέλη ταυτόχρονα. Για παράδειγμα:


gzip -c αρχείο1> foo.gz
gzip -c αρχείο2 >> foo.gz

Επειτα


gunzip -c foo

είναι ισοδύναμο με


αρχείου γάτας1 αρχείο2

Σε περίπτωση βλάβης σε ένα μέλος του αρχείου .gz, άλλα μέλη μπορούν ακόμη να ανακτηθούν (αν αφαιρεθεί το κατεστραμμένο μέλος). Ωστόσο, μπορείτε να πάρετε καλύτερη συμπίεση συμπιέζοντας όλα τα μέλη με τη μία:


αρχεία γάτας1 αρχείο2 | gzip> foo.gz

συμπιέζει καλύτερα από


gzip -c αρχείο1 αρχείο2> foo.gz

Εάν θέλετε να ανασυγκροτήσετε αρχεία με συρραφή για καλύτερη συμπίεση, κάντε τα εξής:


gzip -cd old.gz | gzip> new.gz

Εάν ένα συμπιεσμένο αρχείο αποτελείται από πολλά μέλη, το μη συμπιεσμένο μέγεθος και το CRC που αναφέρονται από την επιλογή -list ισχύουν μόνο για το τελευταίο μέλος. Αν χρειάζεστε το ασυμπίεστο μέγεθος για όλα τα μέλη, μπορείτε να χρησιμοποιήσετε:


gzip -cd file.gz | wc -c

Εάν θέλετε να δημιουργήσετε ένα αρχείο αρχείου με πολλαπλά μέλη, ώστε τα μέλη να μπορούν να εξαχθούν αργότερα, χρησιμοποιήστε έναν αρχειοθέτη όπως tar ή zip. Το GNU tar υποστηρίζει την επιλογή -z για την επίκληση του gzip με διαφάνεια. Το gzip έχει σχεδιαστεί ως συμπλήρωμα στην πίσσα και όχι ως αντικατάσταση.

ΔΕΙΤΕ ΕΠΙΣΗΣ

συμπίεση (1)

Η μορφή αρχείου gzip καθορίζεται στο P. Deutsch, προδιαγραφή μορφής αρχείου GZIP, έκδοση 4.3, , Internet RFC 1952 (Μάιος 1996). Η μορφή αποπληθωρισμού φερμουάρ καθορίζεται στο P. Deutsch, DEFLATE Compressed Data Format Specification, έκδοση 1.3, , Internet RFC 1951 (Μάιος 1996).

Σημαντικό: Χρησιμοποιήστε την εντολή man ( % man ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.