Αρχειοθέτηση αρχείων

Εικόνα: markos
Submitted by markos on Δευ, 05/03/2007 - 00:40

Πέρα από τη συμπίεση, πολύ σημαντική είναι και η αρχειοθέτηση των αρχείων, δηλαδή η τοποθέτησή πολλών αρχείων σε ένα ενιαίο αρχείο με σκοπό την εύκολη μεταφορά και αποθήκευση. Όπως με τα συστήματα συμπίεσης αρχείων έτσι και με τα συστήματα αρχειοθέτησης υπάρχει μεγάλη ποικιλία. Συνήθως δε, κάθε λειτουργικό σύστημα υιοθετεί κάποιο ειδικό σύστημα αρχειοθέτησης. Στο UNIX, για λόγους ιστορικούς και συμβατότητας, το πιο συνηθισμένο σύστημα είναι το TAR (Tape ARchive) που χρησιμοποιεί την ομώνυμη εντολή tar και οι αρχειοθήκες του έχουν την ίδια κατάληξη .tar. Πολύ συχνά τα αρχεία αυτά απαντώνται και συμπιεσμένα οπότε μπορούμε να τα δούμε με τις εξής καταλήξεις:

Κατάληξη Αρχείου
Είδος Αρχείοθήκης
.tar.Z
.tar.gz
.tgz
Αρχειοθήκη συμπιεσμένη με το πρόγραμμα gzip.
.tar.bz
.tar.bz2
.tbz
Αρχειοθήκη συμπιεσμένη με το πρόγραμμα bzip2.
.tar.zip Αρχειοθήκη συμπιεσμένη με το πρόγραμμα zip (σπάνια χρησιμοποιείται ο συνδυασμός αυτός).

Στο Debian, χρησιμοποιείται η έκδοση GNU tar η οποία προσφέρει ορισμένα επιπλέον χαρακτηριστικά από τις εντολές tar των άλλων συστημάτων UNIX. Η σύνταξη της εντολής GNU tar ακολουθεί τους εξής κανόνες:

tar [-] [function][options] archive files...

όπου function η εργασία που θα πραγματοποιήσει η tar, με τις επιλογές options, χρησιμοποιώντας την αρχειοθήκη archive και τα αρχεία (ή καταλόγους files). Για αυτήν την εντολή η χρήση της παύλας “-“ δεν είναι απαραίτητη.
Ως εργασία εννοούμε μία από τις εξής:

Εργασίες
Λειτουργία
-A
--catenate
--concatenate
Αν τα αρχεία files είναι και αυτά αρχειοθήκες .tar, τότε η εντολή πραγματοποιεί συνένωση αυτών στην αρχική αρχειοθήκη archive.
-c
--create
Δημιουργεί την αρχειοθήκη archive με περιεχόμενα τα αρχεία files.
-d
--diff
--compare
Εμφανίζει τις διαφορές μεταξύ των αρχείων που βρίσκονται στην αρχειοθήκη και των αρχείων που βρίσκονται στο σύστημα αρχείων.
--delete Διαγράφει τα αρχεία files που βρίσκονται στην αρχειοθήκη archive.
-r
--append
Προσαρτά τα αρχεία files στο τέλος της αρχειοθήκης archive.
-t
--list
Εμφάνιση των περιεχομένων της αρχειοθήκης.
-u
--update
Ανανέωση των αρχείων files που βρίσκονται στην αρχειοθήκη archive. Αν υπάρχουν ήδη στην αρχειοθήκη, γίνεται αντικατάσταση με τα νέα αρχεία, ενώ διαφορετικά προστίθενται στην αρχειοθήκη.
-x
--extract
--get
Εξάγει τα αρχεία files από την αρχειοθήκη archive. Αν δεν δοθούν ονόματα αρχείων για εξαγωγή, εξάγει όλα τα αρχεία της αρχειοθήκης.

Ενώ ως επιλογές εννοούμε οποιονδήποτε (συμβατό) συνδυασμό των παρακάτω:

Επιλογές
Λειτουργία
-C
--directory DIR
Χρησιμοποιείται σε συνδυασμό με την εργασία εξαγωγής (-x, extract) και εξάγει τα αρχεία στον κατάλογο DIR και όχι στον τρέχοντα κατάλογο.
-f
--file [HOSTNAME:]FILE
Χρησιμοποιεί ως αρχειοθήκη το αρχείο FILE, το οποίο μπορεί να είναι και απομακρυσμένο (εξού και η επιλογή HOSTNAME). Η tar είχε σχεδιαστεί, εξάλλου, να λειτουργεί με συσκευές οδηγών κασέτας (tape drives). Αυτό σημαίνει ότι το αρχείο μπορεί να είναι απευθείας το σημείο επαφής της συσκευής οδηγού κασέτας, π.χ. /dev/st0.
-T
--files-from FILE
Χρησιμοποιεί τη λίστα αρχείων που βρίσκεται στο αρχείο κειμένου FILE για εξαγωγή ή αρχειοθέτηση, αντί της παραμέτρου files.
--exclude PATTERN Αποκλείει από την εξαγωγή ή αρχειοθέτηση τα αρχεία που ταιριάζουν στην κανονική παράσταση PATTERN.
-X
--exclude-from FILE
Αποκλείει από την εξαγωγή ή αρχειοθέτηση τα αρχεία που περιέχονται στο αρχείο κειμένου FILE.
-l
--one-file-system
Όταν γίνεται αρχειοθέτηση χρησιμοποιεί μόνο το τρέχον σύστημα αρχείων και δεν εισέρχεται σε συναρμοσμένα συστήματα αρχείων σε αυτό (mounted).
--no-recursion Δεν περιλαμβάνει στην αρχειοθέτηση αναδρομικά τα περιεχόμενα των καταλόγων.
-h
--dereference
Όταν συναντά συμβολικούς συνδέσμους, αρχειοθετεί τα πραγματικά αρχεία και όχι τους συνδέσμους.
--ignore-case Αγνοεί την διαφορά πεζών-κεφαλαίων στον αποκλεισμό αρχείων (με την --exclude).
-k
--keep-old-files
Κατά την εξαγωγή δεν διαγράφει τα υπάρχοντα αρχεία.
-N
--after-date DATE
--newer DATE
Αρχειοθετεί μόνο τα αρχεία που είναι νεώτερα από την ημερομηνία DATE.
--newer-mtime DATE Αρχειοθετεί μόνο τα αρχεία που έχουν μεταβληθεί μεταγενέστερα από την ημερομηνία DATE.
--mode M Κατά την αρχειοθέτηση χρησιμοποιεί τις άδειες πρόσβασης που ορίζονται από τον οκταδικό αριθμό M (βλ. απόλυτο τρόπο εκτέλεσης chmod).
-p
--same-permissions
--preserve-permissions
Διατηρεί τις άδειες προσπέλασης των αρχείων κατά την αρχειοθέτηση ή εξαγωγή τους.
-s
--same-order
--preserve-order
Κατά την εξαγωγή των αρχείων, διατηρείται η σειρά τους όπως στην αρχειοθήκη.
--same-owner Διατηρεί τα ονόματα ιδιοκτητών/ομάδος των αρχείων κατά την αρχειοθέτηση ή εξαγωγή τους (προκαθορισμένο για το χρήστη root).
--no-same-owner Χρησιμοποιεί το όνομα του τρέχοντος χρήστη/ομάδος κατά την αρχειοθέτηση ή εξαγωγή των αρχείων (ισχύει για όλους τους χρήστες πλήν του root).
--group G Κατά την αρχειοθέτηση ορίζει την ομάδα των αρχείων.
--totals Εμφανίζει το συνολικό αριθμό bytes που αρχειοθετήθηκαν.
-V
--label NAME
Ονομάζει την αρχειοθήκη με την ετικέτα NAME.
-w
--interactive
--confirmation
Διαλογική εργασία. Ζητάει επαλήθευση για κάθε πράξη.
-Z
--compress
--uncompress
Χρησιμοποιεί την εντολή compress για τη συμπίεση ή αποσυμπίεση των αρχείων (το όνομα του αρχείου θα πρέπει να είναι .tar.Z).
-z
--gzip
--gunzip
--ungzip
Χρησιμοποιεί την εντολή gzip για τη συμπίεση ή αποσυμπίεση των αρχείων (το όνομα του αρχείου θα πρέπει να είναι .tar.gz ή .tgz).
-j
--bzip2
Χρησιμοποιεί την εντολή bzip2 για τη συμπίεση ή αποσυμπίεση των αρχείων (το όνομα του αρχείου θα πρέπει να είναι .tar.bz2 ή .tbz). Σημείωση: παλαιότερες εκδόσεις της tar χρησιμοποιούσαν την επιλογή -I.
--use-compress-program PROG Χρησιμοποιεί την εντολή PROG για τη συμπίεση ή αποσυμπίεση των αρχείων. Η μόνη απαίτηση είναι η εντολή να δέχεται την παράμετρο -d για αποσυμπίεση.

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

Αν θέλετε να πάρετε συμπιεσμένο αντίγραφο του καταλόγου σας $HOME με τη μορφή αρχειοθήκης με όνομα /tmp/homebackup.tar.gz, και να το μεταφέρετε σε ένα καινούριο δίσκο που έχετε συναρμόσει στον κατάλογο /newdisk:

$ tar czf /tmp/homebackup.tar.gz $HOME
$ cd /newdisk/
$ tar xzf /tmp/homebackup.tar.gz

Η τελευταία εντολή είναι ισοδύναμη με

$ tar xzf -C /newdisk /tmp/homebackup.tar.gz

Αν θέλετε να ανανέωσετε τα αρχεία της αλληλογραφίας σας στην αρχειοθήκη μπορείτε να χρησιμοποιήσετε την εντολή:

$ tar uvf /tmp/homebackup.tar.gz $HOME/mail

Ως χρήστης root, αν επιθυμείτε να λάβετε ένα πλήρες αντίγραφο ενός καταλόγου, συμπιεσμένου με την εντολή bzip2, και να βλέπετε αναλυτικά τα αρχεία καθώς εισάγονται στην αρχειοθήκη, τότε γράψτε:

# tar cvpjf /var/backup/etc.tar.gz /etc

0
Your rating: None