Σε βάθος Δείτε τις εντολές αρχειοθέτησης και συμπίεσης του Linux
Η ανάγκη να συσκευάζονται και να συμπιέζονται τα αρχεία μαζί σε ένα ενιαίο αρχείο έχει γύρω από τη στιγμή που οι υπολογιστές πήραν για πρώτη φορά σκληρούς δίσκους, και ότι η ανάγκη έχει παραμείνει μέχρι σήμερα. Τα πάντα από τα έγγραφα και τις φωτογραφίες έως τα προγράμματα οδήγησης λογισμικού και συσκευών φορτώνονται και μεταφορτώνονται κάθε μέρα ως αρχεία. Οι περισσότεροι χρήστες ηλεκτρονικών υπολογιστών είναι εξοικειωμένοι με αρχεία .zip, αλλά υπάρχουν περισσότερα αρχεία από ό, τι το ταπεινό .zip. Σε αυτό το σεμινάριο, θα σας δείξουμε τις διάφορες εντολές αρχειοθέτησης και συμπίεσης του Linux και τον σωστό τρόπο χρήσης τους.
Τα πίσσα και το gzip
Ιστορικά το προεπιλεγμένο εργαλείο αρχειοθέτησης στο Linux είναι η εντολή tar
. Αρχικά ήταν για το "Tape Archive", αλλά αυτό ήταν πίσω όταν οι ταινίες ήταν το κύριο μέσο για τη μετακίνηση δεδομένων. Η εντολή tar
είναι πολύ ευέλικτη και μπορεί να δημιουργήσει, να συμπιέσει, να ενημερώσει, να εξαγάγει και να δοκιμάσει τα αρχεία αρχειοθέτησης. Η προεπιλεγμένη επέκταση για ένα μη συμπιεσμένο αρχείο tar (μερικές φορές ονομάζεται αρχείο tar ή tarball) είναι .tar ενώ τα συμπιεσμένα αρχεία tar χρησιμοποιούν συχνότερα την επέκταση .tgz (που σημαίνει ένα αρχείο tar που είναι συμπιεσμένο με το GNU zip). Το πίσσα προσφέρει πολλές διαφορετικές μεθόδους συμπίεσης, όπως bzip2, zip, LZW και LZMA.
Για να δημιουργήσετε ένα μη συμπιεσμένο tarball όλων των αρχείων σε έναν κατάλογο, χρησιμοποιήστε την ακόλουθη εντολή:
tar cvf somefiles.tar *
c
σημαίνει δημιουργία, v
σημαίνει verbose (σημαίνει ότι η εντολή tar θα απαριθμήσει τα αρχεία που αρχειοθετεί) και το f
λέει στο tar ότι η επόμενη παράμετρος είναι το όνομα του αρχείου αρχειοθέτησης, στην περίπτωση αυτή "somefiles.tar". Το wildcard * σημαίνει όλα τα αρχεία στον κατάλογο, όπως θα ήταν για τις περισσότερες εντολές του shell του Linux.
Το tarball "somefiles.tar" δημιουργείται στον τοπικό κατάλογο. Αυτό μπορεί τώρα να συμπιεστεί με ένα εργαλείο όπως gzip, zip, compress ή bzip2. Για παράδειγμα:
gzip somefiles.tar
το gzip θα συμπιέσει το tarball και θα προσθέσει την επέκταση .gz. Τώρα στον τοπικό κατάλογο υπάρχει ένα αρχείο somefiles.tar.gz
αντί του αρχείου somefiles.tar
.
Αυτή η διαδικασία δύο βημάτων, η δημιουργία του tarball και η συμπίεσή του, μπορούν να μειωθούν σε ένα βήμα με τη χρήση ενσωματωμένης πίσσας στη συμπίεση:
tar cvzf somefiles.tgz *
Αυτό θα δημιουργήσει ένα gzip συμπιεσμένο tarball που ονομάζεται somefiles.tgz
. Η πρόσθετη επιλογή z
αναγκάζει το tar να συμπιέσει το tarball. Αντί του z
θα μπορούσατε να χρησιμοποιήσετε j
, J
ή Z
που λέει tar να χρησιμοποιήσει bzip2, xz και LZW συμπίεση αντίστοιχα. Το xz υλοποιεί τη συμπίεση LZMA2, η οποία είναι ο ίδιος αλγόριθμος με το δημοφιλές πρόγραμμα Windows 7-Zip.
7-Zip
Είναι δυνατή η δημιουργία ενός αρχείου συμβατού με 7-Zip χρησιμοποιώντας την εντολή 7zr
. Για να δημιουργήσετε μια αρχειοθήκη αρχείου .7z:
7zr a somefiles.7z *
Οι επιλογές a
προσθέτουν add, δηλαδή προσθέστε όλα τα τοπικά αρχεία στο αρχείο somefiles.7z. Αυτό το αρχείο μπορεί στη συνέχεια να σταλεί σε ένα χρήστη των Windows και θα είναι σε θέση να εξάγει το περιεχόμενο χωρίς κανένα πρόβλημα.
Η χρήση του 7zr για την εκτέλεση αντιγράφων ασφαλείας στο Linux δεν συνιστάται καθώς το 7-zip δεν αποθηκεύει τις πληροφορίες ιδιοκτήτη / ομάδας για τα αρχεία που αρχειοθετεί. Είναι δυνατόν να χρησιμοποιήσετε το 7zr για να συμπιέσετε ένα tarball (το οποίο αποθηκεύει τις πληροφορίες του κατόχου). Μπορείτε να το κάνετε χρησιμοποιώντας ένα σωλήνα Unix ως εξής:
πίσσα cvf - * 7zr a -si somefiles.tar.7z
Το παύλα, μετά την επιλογή f
, ενημερώνει το tar να στείλει την έξοδο του στο stdout
του Unix και όχι σε ένα αρχείο. Δεδομένου ότι χρησιμοποιούμε ένα σωλήνα, η έξοδος από πίσσα θα τροφοδοτηθεί σε 7zr που περιμένει εισροή από stdin
λόγω της επιλογής -si
. Το 7zr θα δημιουργήσει στη συνέχεια ένα αρχείο που ονομάζεται somefiles.tar.7z
οποίο θα περιέχει το tarball που με τη σειρά του περιέχει τα αρχεία. Εάν δεν είστε εξοικειωμένοι με τη χρήση σωλήνων, θα μπορούσατε να δημιουργήσετε ένα πρότυπο tarball και στη συνέχεια να το συμπιέσετε με 7zr χρησιμοποιώντας δύο βήματα:
tar-cvf somefiles.tar * 7zr a somefiles.tar.7z somefiles.tar
Εξαγωγή
Η εξαγωγή των αρχείων από αυτά τα διαφορετικά αρχεία είναι επίσης πολύ απλή, εδώ είναι ένα γρήγορο φύλλο εξαπατήσει για την εξαγωγή των διαφόρων αρχείων που δημιουργήθηκαν παραπάνω.
Για να εξαγάγετε μια απλή χρήση του tarball:
tar xvf somefiles.tar
Όπου το x
σημαίνει εκχύλισμα.
Για να εξαγάγετε μια συμπιεσμένη χρήση του tarball:
tar xvzf somefiles.tgz
Η επιλογή z
λέει ότι η gzip χρησιμοποιήθηκε για να συμπιέσει το αρχικό αρχείο. Αντί του z
θα μπορούσατε να χρησιμοποιήσετε j
, J
ή Z
ανάλογα με τον αλγόριθμο συμπίεσης που χρησιμοποιήθηκε όταν δημιουργήθηκε το αρχείο.
Για να εξαγάγετε τα αρχεία από ένα αρχείο 7-Zip χρησιμοποιήστε:
7zr e somefiles.tar.7z
συμπέρασμα
Το Linux προσφέρει ένα ευρύ φάσμα εντολών αρχειοθέτησης και συμπίεσης. Δοκιμάστε να δοκιμάσετε τις εντολές zip και xz και λειτουργούν πολύ παρόμοια με τα άλλα εργαλεία που αναφέρονται εδώ. Αν κολλήσετε, θα πρέπει να δοκιμάσετε την ανάγνωση της σελίδας του ανθρώπου, π.χ. του man xz
για επιπλέον βοήθεια.