21Aug

Ποιο είναι το πλεονέκτημα της χρήσης της μορφής αρχείου Tar ως σήμερα;

click fraud protection


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

Η σημερινή ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.

Η ερώτηση

Reader SuperUser MarcusJ είναι περίεργη για τη μορφή tar και γιατί εξακολουθούμε να την χρησιμοποιούμε μετά από όλα αυτά τα χρόνια:

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

Ερωτήσεις:

  • Υπάρχει ποινή απόδοσης κατά τη διάρκεια της συνάθροισης /compression/ στα στάδια αποσυμπίεσης για τη χρήση tar encapsulated σε gzip ή bzip2, σε σύγκριση με τη χρήση μιας μορφής αρχείου που κάνει συσσωμάτωση και συμπίεση στην ίδια δομή δεδομένων;Υποθέστε ότι ο χρόνος εκτέλεσης του συμπιεστή που συγκρίνεται είναι ταυτόσημος( π.χ. gzip και Deflate είναι παρόμοιοι).
    instagram viewer
  • Υπάρχουν λειτουργίες μορφής αρχείου tar που δεν έχουν άλλες μορφές αρχείων, όπως τα. 7z και. zip;
  • Δεδομένου ότι η tar είναι παλιά μορφή αρχείου και υπάρχουν νεότερες μορφές αρχείων, γιατί το tar( αν και εγκλωβισμένο σε gzip, bzip2 ή ακόμη και το νέο xz) εξακολουθεί να χρησιμοποιείται τόσο ευρέως σήμερα στα GNU / Linux, Android, BSD και άλλαΛειτουργικά συστήματα UNIX, για μεταφορές αρχείων, πηγή προγραμμάτων και δυαδικές λήψεις και μερικές φορές ακόμη και ως μορφή διαχειριστή πακέτων;

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

Ο συνεργάτης απαντήσεων

SuperUser Allquixotic προσφέρει κάποια εικόνα για τη μακροζωία και τη λειτουργικότητα της μορφής tar:

Μέρος 1: Απόδοση

Εδώ είναι μια σύγκριση δύο διαφορετικών ροών εργασιών και τι κάνουν.

Έχετε ένα αρχείο στο δίσκο blah.tar.gz το οποίο είναι, για παράδειγμα, 1 GB συμπιεσμένων δεδομένων gzip τα οποία, όταν δεν έχουν συμπιεστεί, καταλαμβάνουν 2 GB( έτσι μια αναλογία συμπίεσης 50%).

Ο τρόπος με τον οποίο θα δημιουργούσατε αυτό το αρχείο ξεχωριστά θα ήταν:

tar cf blah.tar αρχεία. ..

Αυτό θα είχε ως αποτέλεσμα το blah.tar που αποτελεί απλή συνάθροιση των αρχείων.σε ασυμπίεστη μορφή.

Στη συνέχεια θα κάνατε

gzip blah.tar

Αυτό θα διαβάσει τα περιεχόμενα του blah.tar από το δίσκο, θα τα συμπιέσει μέσω του αλγόριθμου συμπίεσης gzip, θα γράψει τα περιεχόμενα στο blah.tar.gz και στη συνέχεια θα αποσυνδέσει( διαγράψει) το αρχείο blah.πίσσα.

Τώρα, ας αποσυμπιέσουμε!

Way 1

Έχετε blah.tar.gz, έτσι ή αλλιώς.

Αποφασίζετε να εκτελέσετε:

gunzip blah.tar.gz

Αυτό θα

  • ΔΙΑΒΑΣΤΕ τα περιεχόμενα συμπιεσμένων δεδομένων 1GB του blah.tar.gz.
  • ΔΙΑΒΑΣΤΕ τα συμπιεσμένα δεδομένα μέσω του αποσυμπιεστή gzip στη μνήμη.
  • Καθώς η προσωρινή μνήμη συμπληρώνεται με δεδομένα "ενός μπλοκ", Γράψτε τα ασυμπίεστα δεδομένα στο αρχείοblah.tar στο δίσκο και επαναλάβετε μέχρι να διαβάσετε όλα τα συμπιεσμένα δεδομένα.
  • Αποσύνδεση( διαγραφή) του αρχείου blah.tar.gz.

Τώρα, έχετε blah.tar στο δίσκο, το οποίο είναι ασυμπίεστο, αλλά περιέχει ένα ή περισσότερα αρχεία μέσα σε αυτό, με πολύ χαμηλή γενική δομή δεδομένων.Το μέγεθος του αρχείου είναι πιθανώς ένα ζευγάρι bytes μεγαλύτερο από το άθροισμα όλων των δεδομένων αρχείου θα ήταν. Μπορείτε να εκτελέσετε:

tar xvf blah.tar

Αυτό θα

  • ΔΙΑΒΑΣΤΕ τα 2GB του ασυμπίεστου περιεχομένου δεδομένων του blah.tar και των δομών δεδομένων μορφής αρχείου tar, συμπεριλαμβανομένων πληροφοριών για τα δικαιώματα αρχείων, ονόματα αρχείων, καταλόγους κλπ.
  • WRITE στο δίσκοτα 2GB δεδομένων και τα μεταδεδομένα.Αυτό συνεπάγεται: τη μετάφραση των πληροφοριών δομής δεδομένων / μεταδεδομένων στη δημιουργία νέων αρχείων και καταλόγων στο δίσκο, ανάλογα με την περίπτωση, ή στην επανεγγραφή υπαρχόντων αρχείων και καταλόγων με νέα δεδομένα.

Το σύνολο των δεδομένων που ΔΙΑΒΑΣΤΕ το από το δίσκο σε αυτή τη διαδικασία ήταν 1GB( για gunzip) + 2GB( για πίσσα) = 3GB.

Τα συνολικά δεδομένα WROTE σε δίσκο σε αυτή τη διαδικασία ήταν 2GB( για gunzip) + 2GB( για πίσσα) + μερικά byte για μεταδεδομένα = περίπου 4GB.

τρόπος 2

Έχετε blah.tar.gz, με τον ένα ή τον άλλο τρόπο.

Θα αποφασίσετε να εκτελέσετε:

tar xvzf blah.tar.gz

Αυτό θα

  • ΔΙΑΒΑΣΤΕ τα περιεχόμενα συμπιεσμένων δεδομένων 1GB του blah.tar.gz, ένα μπλοκ κάθε φορά, στη μνήμη.
  • ΔΙΑΒΑΣΤΕ τα συμπιεσμένα δεδομένα μέσω του αποσυμπιεστή gzip στη μνήμη.
  • Καθώς η προσωρινή μνήμη συμπληρώνεται, το pipe θα αποθηκεύσει τα δεδομένα, στη μνήμη, μέχρι τον αναλυτή μορφής αρχείου tar, ο οποίος θα διαβάσει τις πληροφορίες σχετικά με τα μεταδεδομένα κλπ. Και τα δεδομένα ασυμπίεστου αρχείου.
  • Καθώς η προσωρινή μνήμη συμπληρώνεται στον αναλυτή αρχείων tar, θα γράψει τα μη συμπιεσμένα δεδομένα στο δίσκο, δημιουργώντας αρχεία και καταλόγους και γεμίζοντας τα με τα ασυμπίεστα περιεχόμενα.

Τα συνολικά δεδομένα που READ από το δίσκο σε αυτή τη διαδικασία ήταν 1GB συμπιεσμένων δεδομένων, περίοδος.

Τα συνολικά δεδομένα που WROTE στο δίσκο σε αυτή τη διαδικασία ήταν 2GB μη συμπιεσμένων δεδομένων + μερικά bytes για μεταδεδομένα = περίπου 2GB.

Αν παρατηρήσετε, η ποσότητα δίσκου I / O στο Way 2 είναι ίδια με το δίσκο I / O που εκτελείται από, για παράδειγμα, τα προγράμματα Zip ή7-Zip, προσαρμόζοντας για τυχόν διαφορές στη σχέση συμπίεσης.

Και αν η αναλογία συμπίεσης είναι η ανησυχία σας, χρησιμοποιήστε τον συμπιεστή Xz για την ενσωμάτωση πίσσας και έχετε LZMA2'ed TAR αρχείο, το οποίο είναι εξίσου αποτελεσματικό με τον πιο προηγμένο αλγόριθμο που είναι διαθέσιμος στο 7-Zip: -)

Μέρος 2: Χαρακτηριστικά

το tar αποθηκεύει τα δικαιώματα UNIX στα μεταδεδομένα του αρχείου και είναι πολύ γνωστό και δοκιμασμένο για τη σωστή συμπλήρωση ενός καταλόγου με όλα τα είδη διαφορετικών δικαιωμάτων, συμβολικών συνδέσεων κλπ. Υπάρχουν περισσότερες από κάποιες περιπτώσεις όπου κάποιος μπορεί να χρειαστεί να σφαίρα μια δέσμη αρχείωνσε ένα μόνο αρχείο ή ροή, αλλά όχι απαραίτητα να το συμπιέσετε( αν και η συμπίεση είναι χρήσιμη και συχνά χρησιμοποιείται).

Μέρος 3: Συμβατότητα

Πολλά εργαλεία διανέμονται σε μορφή πηγής ή δυαδικής μορφής ως. tar.gz ή. tar.bz2 επειδή είναι το μορφότυπο αρχείου "lowest common name": όπως και οι περισσότεροι χρήστες των Windows έχουν πρόσβαση σε. zip ή. rarαποσυμπιεστές, οι περισσότερες εγκαταστάσεις Linux, ακόμα και οι πιο βασικές, θα έχουν πρόσβαση σε τουλάχιστον πίσσα και gunzip, ανεξάρτητα από το πόσοι είναι παλιότεροι ή αντίθετοι.Ακόμα και τα firmware Android έχουν πρόσβαση σε αυτά τα εργαλεία.

Νέα έργα που στοχεύουν στο κοινό που χρησιμοποιεί σύγχρονες διανομές μπορούν να διανέμονται πολύ πιο σύγχρονα, όπως το. tar.xz( χρησιμοποιώντας τη μορφή συμπίεσης Xz( LZMA), η οποία συμπιέζει καλύτερα από το gzip ή bzip2) ή το. 7z, το οποίο είναι παρόμοιοστις μορφές αρχείων Zip ή Rar, επειδή συμπιέζει και καθορίζει μια διάταξη για την ενσωμάτωση πολλαπλών αρχείων σε ένα μόνο αρχείο.

Δεν βλέπετε το. 7z που χρησιμοποιείται συχνότερα για τον ίδιο λόγο που η μουσική δεν πωλείται από ηλεκτρονικά καταστήματα λήψης σε ολοκαίνουργιες μορφές όπως το Opus ή το βίντεο στο WebM.Συμβατότητα με ανθρώπους που χρησιμοποιούν αρχαία ή πολύ βασικά συστήματα.

Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.