Hits : 3412

Linux Data Compression :: Mini How To 


Συμπίεση Δεδομένων


Τα κυριότερα προγράμματα συμπίεσης/αποσυμπίεσης στο λειτουργικό σύστημα 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


top


Αποσυμπίεση Αρχείων


Για να αποσυμπιέσουμε το καθένα από τα παραπάνω αρχεία χρειάζεται να
πληκτρολογήσουμε τις εξής εντολές:


  • unzip filename.zip
  • gunzip filename.zip
  • bunzip2 filename.bz2
  • rar x filename.rar
  • unxz filename.xz

top


Συμπίεση Αρχείων


Για να συμπιέσουμε ένα αρχείο τότε χρειάζεται να επιλέξουμε καταρχήν τον
αλγόριθμο συμπίεσης και εν συνεχεία να πληκτρολογήσουμε μία εκ των εξής
εντολών:


  • zip filename.zip filename
  • gzip filename
  • bzip2 filename
  • rar a filename.rar filename
  • xz filename

top


Archive Files :: Tar 


Τι γίνεται όταν έχουμε όχι ένα αρχείο αλλά έναν κατάλογο με πάρα μα πολλά
αρχεία και πολλούς υποκαταλόγους, τότε απλά χρειαζόμαστε το tar.


Το tar είναι ένα πρόγραμμα με το οποίο δημιουργούμε archives ή κάνουμε
extract ολόκληρες δομές καταλόγων και αρχείων από μόνο ένα αρχείο.


top


Δημιουργία Archive


Έστω λοιπόν ότι θέλουμε να πάρουμε ένα αντίγραφο του καταλόγου /etc
Γράφουμε το εξής:


  • tar cvf etc_backup.tar /etc

Οι παράμετροι είναι οι εξής:


  • c : create
  • v : verbose
  • f : file archive

που σημαίνει ότι θα δημιουργήσει και ταυτόχρονα θα δούμε όλα τα αρχεία
που θα αρχειοθετήσει εντός του αρχείου archive.


top


Extract Αρχείων


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


  • tar xvf etc_backup.tar

Οι παράμετροι είναι οι εξής:


  • x : extract
  • v : verbose
  • f : file archive

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


top


Εμφάνιση Αρχείων


Πως μπορούμε να δούμε τα περιεχόμενα ενός αρχείου archive χωρίς να τα
εξάγουμε, πολύ απλά πληκτρολογούμε το εξής:


  • tar tf etc_backup.tar

Οι παράμετροι είναι οι εξής:


  • t : list
  • f : file archive

οπότε θα δούμε τα περιεχόμενα ενός αρχείου χωρίς να τα εξάγουμε.


top


Εξαγωγή Αρχείου από Αρχειοθήκη


Όταν θέλουμε να εξάγουμε μόνο συγκεκριμένα αρχεία από ένα tar 
τότε χρειάζεται να κάνουμε 2 πράγματα:


a. Πρέπει να βρούμε το αρχείο που θέλουμε να εξάγουμε και
b. Να το εξάγουμε :)


Παράδειγμα (έστω ότι έχουμε το etc.tar ως αντίγραφο του καταλόγου /etc):


tar tf etc.tar | grep -i passwd

etc/passwd


Οπότε εάν θέλουμε το παραπάνω αρχείο τότε:


tar xf etc.tar etc/passwd


top


Δημιουργία & Συμπίεση Αρχειοθήκης


Ένα από τα καλύτερα σημεία είναι ότι μπορούμε να έχουμε αντίγραφα
των καταλόγων μας και όλων των αρχείων μας σε ένα και μόνο αρχείο
το οποίο να το έχουμε και συμπιεσμένο ταυτόχρονα με μία εντολή:


Επιλέγουμε τον αλγόριθμο συμπίεσης που θέλουμε (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

top


Αποσυμπίεση & Εξαγωγή Αρχειοθήκης


Έστω λοιπόν ότι έχουμε ένα αρχείο μορφής 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

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


Εύκολο έτσι ;


top


ToDo List


  • Περισσότερα Παραδείγματα
  • καλύτερη σαφήνεια – ορθότερη τεχνική τεκμηρίωση
  • επεξήγηση των filename extension
  • δημιουργία αναγνώσιμου PDF 
  • checksum verification

top