Linux Data Compression :: Mini How To
Contents
Συμπίεση Δεδομένων
Τα κυριότερα προγράμματα συμπίεσης/αποσυμπίεσης στο λειτουργικό σύστημα linux
είναι πέντε (5).
Για να δούμε περισσότερες πληροφορίες για το κάθε πρόγραμμα χρειάζεται
να γράψουμε τις εξής εντολές:
- man zip
- man gzip
- man bzip2
- man rar
- man xz
Οι κυριότερες καταλήξεις αρχείων για κάθε αλγόριθμο (ΚΑΙ ΟΧΙ ΔΕΝ ΠΑΙΖΕΙ
ΚΑΜΙΑ ΣΗΜΑΣΙΑ ΣΤΟ LINUX – ΕΤΣΙ ΤΟ ΛΕΩ) είναι οι εξής (έστω ότι το όνομα
του συμπιεσμένου αρχείου είναι filename):
- filename.zip
- filename.gz
- filename.bz2
- filename.rar
- filename.xz
Καταλήξεις Αρχείων
Οι καταλήξεις αρχείων (file extension) δημιουργήθηκαν για να μπορούμε
εύκολα να καταλαβαίνω τι τύπου δεδομένα έχει ένα αρχείο. Σε παλαιότερα
συστήματα η κατάληξη ήταν ξεχωριστό attribute στο partition table και όχι
μέρος του ονόματος (π.χ. FAT). Σε νεώτερα λειτουρικά συστήματα αλλά κυρίως
σε unix(like/based) η πληροφορία του τύπου των δεδομένων καταγράφεται σε
metadata ή ακόμα καλύτερα σε extended attribute στο πίνακα του συστήματος
αρχείων. Ένας ακόμα τρόπος για να μάθουμε τον τύπο των δεδομένων ενός αρχείου
είναι το MIME Type κυρίως διαδεδομένος στο διαδίκτυο.
Στο Linux για να δούμε τον τύπο των δεδομένων ενός αρχείου πληκτρολογούμε την
εξής εντολή:
file filename.extension
και ένα παράδειγμα είναι το εξής:
file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Αποσυμπίεση Αρχείων
Για να αποσυμπιέσουμε το καθένα από τα παραπάνω αρχεία χρειάζεται να
πληκτρολογήσουμε τις εξής εντολές:
- unzip filename.zip
- gunzip filename.zip
- bunzip2 filename.bz2
- rar x filename.rar
- unxz filename.xz
Συμπίεση Αρχείων
Για να συμπιέσουμε ένα αρχείο τότε χρειάζεται να επιλέξουμε καταρχήν τον
αλγόριθμο συμπίεσης και εν συνεχεία να πληκτρολογήσουμε μία εκ των εξής
εντολών:
- zip filename.zip filename
- gzip filename
- bzip2 filename
- rar a filename.rar filename
- xz filename
Archive Files :: Tar
Τι γίνεται όταν έχουμε όχι ένα αρχείο αλλά έναν κατάλογο με πάρα μα πολλά
αρχεία και πολλούς υποκαταλόγους, τότε απλά χρειαζόμαστε το tar.
Το tar είναι ένα πρόγραμμα με το οποίο δημιουργούμε archives ή κάνουμε
extract ολόκληρες δομές καταλόγων και αρχείων από μόνο ένα αρχείο.
Δημιουργία Archive
Έστω λοιπόν ότι θέλουμε να πάρουμε ένα αντίγραφο του καταλόγου /etc
Γράφουμε το εξής:
- tar cvf etc_backup.tar /etc
Οι παράμετροι είναι οι εξής:
- c : create
- v : verbose
- f : file archive
που σημαίνει ότι θα δημιουργήσει και ταυτόχρονα θα δούμε όλα τα αρχεία
που θα αρχειοθετήσει εντός του αρχείου archive.
Extract Αρχείων
Πως κάνουμε εξαγωγή των αρχείων και των καταλόγων από ένα αρχείο αρχειοθήκης.
Πληκτρολογούμε το εξής:
- tar xvf etc_backup.tar
Οι παράμετροι είναι οι εξής:
- x : extract
- v : verbose
- f : file archive
που σημαίνει ότι θα εξάγει και ταυτόχρονα θα δούμε όλα τα αρχεία που έχουμε
αρχειοθετήσει εντός του αρχείου archive.
Εμφάνιση Αρχείων
Πως μπορούμε να δούμε τα περιεχόμενα ενός αρχείου archive χωρίς να τα
εξάγουμε, πολύ απλά πληκτρολογούμε το εξής:
- tar tf etc_backup.tar
Οι παράμετροι είναι οι εξής:
- t : list
- f : file archive
οπότε θα δούμε τα περιεχόμενα ενός αρχείου χωρίς να τα εξάγουμε.
Εξαγωγή Αρχείου από Αρχειοθήκη
Όταν θέλουμε να εξάγουμε μόνο συγκεκριμένα αρχεία από ένα tar
τότε χρειάζεται να κάνουμε 2 πράγματα:
a. Πρέπει να βρούμε το αρχείο που θέλουμε να εξάγουμε και
b. Να το εξάγουμε :)
Παράδειγμα (έστω ότι έχουμε το etc.tar ως αντίγραφο του καταλόγου /etc):
tar tf etc.tar | grep -i passwd etc/passwd
Οπότε εάν θέλουμε το παραπάνω αρχείο τότε:
tar xf etc.tar etc/passwd
Δημιουργία & Συμπίεση Αρχειοθήκης
Ένα από τα καλύτερα σημεία είναι ότι μπορούμε να έχουμε αντίγραφα
των καταλόγων μας και όλων των αρχείων μας σε ένα και μόνο αρχείο
το οποίο να το έχουμε και συμπιεσμένο ταυτόχρονα με μία εντολή:
Επιλέγουμε τον αλγόριθμο συμπίεσης που θέλουμε (gnu zip ή bzip2 ή xz) και γράφουμε:
- tar jcvf etc_backup.tar.bz2 /etc
ή
- tar zcvf etc_backup.tar.gz /etc
ή
- tar Jcvf etc_backup.tar.xz /etc
Αποσυμπίεση & Εξαγωγή Αρχειοθήκης
Έστω λοιπόν ότι έχουμε ένα αρχείο μορφής tar σε συμπιεσμένη μορφή
(μπορεί να είναι για παράδειγμα ο πηγαίος κώδικας από ένα πρόγραμμα
που θέλουμε να εγκαταστήσουμε):
- filename.tar.gz
ή
- filename.tgz
ή
- filename.txz
τότε η εξαγωγή των αρχείων μπορεί να γίνει με τον εξής τρόπο:
- tar zxvf filename.tar.gz
Οι παράμετροι είναι οι εξής:
- z : gnu unzip
- x : extract
- v : verbose
- f : file archive
Που σημαίνει ότι θα γίνει η αποσυμπίεση, η εξαγωγή όλων των αρχείων καθώς
και ολόκληρης της τυχόν υποδομής καταλόγων και υποκαταλόγων.
Εάν η συμπίεση έχει γίνει με τον αλγόριθμο bzip2 τότε το συμπιεσμένο
αρχείο θα έχει την μορφή:
- tar jxvf filename.tar.bz2
Οι παράμετροι είναι οι εξής:
- j : bzip unzip
- x : extract
- v : verbose
- f : file archive
Που σημαίνει ότι θα γίνει η αποσυμπίεση, η εξαγωγή όλων των αρχείων καθώς
και ολόκληρης της τυχόν υποδομής καταλόγων και υποκαταλόγων.
Εάν η συμπίεση έχει γίνει με τον αλγόριθμο xz τότε το συμπιεσμένο
αρχείο θα έχει την μορφή:
- tar Jxvf filename.tar.bx2
Οι παράμετροι είναι οι εξής:
- J : xz unzip
- x : extract
- v : verbose
- f : file archive
Που σημαίνει ότι θα γίνει η αποσυμπίεση, η εξαγωγή όλων των αρχείων καθώς
και ολόκληρης της τυχόν υποδομής καταλόγων και υποκαταλόγων.
Εύκολο έτσι ;
ToDo List
- Περισσότερα Παραδείγματα
- καλύτερη σαφήνεια – ορθότερη τεχνική τεκμηρίωση
- επεξήγηση των filename extension
- δημιουργία αναγνώσιμου PDF
- checksum verification