3.1 Μάθημα 1
Πιστοποιητικό: |
Linux Essentials |
---|---|
Έκδοση: |
1.6 |
Θέμα: |
3 Η Δύναμη της Γραμμής Εντολών |
Σκοπός: |
3.1 Αρχειοθέτηση Αρχείων στη Γραμμή Εντολών |
Μάθημα: |
1 απο 1 |
Εισαγωγή
Η συμπίεση χρησιμοποιείται για τη μείωση του χώρου που καταναλώνει ένα συγκεκριμένο σύνολο δεδομένων. Η συμπίεση χρησιμοποιείται συνήθως για τη μείωση του χώρου που απαιτείται για την αποθήκευση ενός αρχείου. Μια άλλη κοινή χρήση είναι η μείωση του όγκου των δεδομένων που αποστέλλονται μέσω μιας σύνδεσης δικτύου.
Η συμπίεση λειτουργεί αντικαθιστώντας επαναλαμβανόμενα μοτίβα στα δεδομένα. Ας υποθέσουμε ότι έχετε ένα μυθιστόρημα. Ορισμένες λέξεις είναι εξαιρετικά κοινές, αλλά έχουν πολλούς χαρακτήρες, όπως η λέξη “the”. Θα μπορούσατε να μειώσετε σημαντικά το μέγεθος του μυθιστορήματος αν αντικαταστήσετε αυτές τις κοινές λέξεις και μοτίβα πολλών χαρακτήρων με μεμονωμένους χαρακτήρες. Για παράδειγμα, αντικαταστήστε το “the” με ένα ελληνικό γράμμα που δεν χρησιμοποιείται αλλού στο κείμενο. Οι αλγόριθμοι συμπίεσης δεδομένων είναι παρόμοιοι με αυτόν αλλά πιο περίπλοκοι.
Η συμπίεση είναι δύο ειδών, lossless και lossy. Τα πράγματα που συμπιέζονται με έναν αλγόριθμο χωρίς απώλειες (lossless) μπορούν να αποσυμπιεστούν ξανά στην αρχική τους μορφή. Δεν είναι δυνατή η ανάκτηση δεδομένων που συμπιέζονται με αλγόριθμο με απώλειες (lossy). Οι αλγόριθμοι απώλειας χρησιμοποιούνται συχνά για εικόνες, βίντεο και ήχο όπου η απώλεια ποιότητας είναι ανεπαίσθητη για τον άνθρωπο, άσχετη με το πλαίσιο αναφοράς ή η απώλεια αξίζει τον εξοικονομημένο χώρο ή την απόδοση δικτύου.
Τα εργαλεία αρχειοθέτησης χρησιμοποιούνται για τη δημιουργία μιας δέσμης αρχείων και καταλόγων σε ένα μόνο αρχείο. Ορισμένες συνήθεις χρήσεις είναι τα αντίγραφα ασφαλείας, οι δέσμες πηγαίου κώδικα λογισμικού και η διατήρηση δεδομένων.
Η αρχειοθέτηση και η συμπίεση χρησιμοποιούνται συνήθως μαζί. Ορισμένα εργαλεία αρχειοθέτησης συμπιέζουν ακόμη και το περιεχόμενό τους από προεπιλογή. Άλλα μπορούν προαιρετικά να συμπιέσουν το περιεχόμενό τους. Μερικά εργαλεία αρχειοθέτησης πρέπει να χρησιμοποιηθούν σε συνδυασμό με αυτόνομα εργαλεία συμπίεσης εάν θέλετε να συμπιέσετε τα περιεχόμενα.
Το πιο κοινό εργαλείο για την αρχειοθέτηση αρχείων σε συστήματα Linux είναι το tar
. Οι περισσότερες διανομές Linux συνοδεύονται από την έκδοση GNU του tar
, επομένως είναι αυτή που θα καλυφθεί σε αυτό το μάθημα. Το tar
από μόνο του διαχειρίζεται μόνο την αρχειοθέτηση αρχείων αλλά δεν τα συμπιέζει.
Υπάρχουν πολλά εργαλεία συμπίεσης διαθέσιμα στο Linux. Μερικά κοινά χωρίς απώλειες είναι τα bzip2
, gzip
και xz
. Θα βρείτε και τα τρία στα περισσότερα συστήματα. Μπορεί να συναντήσετε ένα παλιό ή πολύ λιτό σύστημα όπου δεν είναι εγκατεστημένο το xz
ή το bzip
. Εάν γίνετε τακτικός χρήστης Linux, πιθανότατα θα συναντήσετε αρχεία συμπιεσμένα και με τα τρία αυτά εργαλεία. Και τα τρία χρησιμοποιούν διαφορετικούς αλγόριθμους, επομένως ένα αρχείο που συμπιέζεται με ένα εργαλείο δεν μπορεί να αποσυμπιεστεί από άλλο. Τα εργαλεία συμπίεσης έχουν ένα συμβιβασμό. Εάν θέλετε υψηλή αναλογία συμπίεσης, θα χρειαστεί περισσότερος χρόνος για τη συμπίεση και την αποσυμπίεση του αρχείου. Αυτό συμβαίνει επειδή η υψηλότερη συμπίεση απαιτεί περισσότερη εργασία για την εύρεση πιο περίπλοκων μοτίβων. Όλα αυτά τα εργαλεία συμπιέζουν δεδομένα, αλλά δεν μπορούν να δημιουργήσουν αρχεία που περιέχουν πολλά αρχεία.
Τα αυτόνομα εργαλεία συμπίεσης δεν είναι συνήθως διαθέσιμα σε συστήματα Windows. Τα εργαλεία αρχειοθέτησης και συμπίεσης των Windows συνήθως ομαδοποιούνται μαζί. Λάβετε το υπόψη αυτό εάν έχετε συστήματα Linux και Windows που πρέπει να μοιράζονται αρχεία.
Τα συστήματα Linux διαθέτουν επίσης εργαλεία για το χειρισμό αρχείων .zip
που χρησιμοποιούνται συνήθως στο σύστημα Windows. Ονομάζονται zip
και unzip
. Αυτά τα εργαλεία δεν είναι εγκατεστημένα από προεπιλογή σε όλα τα συστήματα, επομένως, αν χρειαστεί να τα χρησιμοποιήσετε, ίσως χρειαστεί να τα εγκαταστήσετε. Ευτυχώς, συνήθως βρίσκονται στα repositories πακέτων των διανομών.
Εργαλεία Συμπίεσης
Το πόσος χώρος εξοικονομείται στο δίσκο με τη συμπίεση αρχείων εξαρτάται από ορισμένους παράγοντες. Η φύση των δεδομένων που συμπιέζετε, ο αλγόριθμος που χρησιμοποιείται για τη συμπίεση των δεδομένων και το επίπεδο συμπίεσης. Δεν υποστηρίζουν όλοι οι αλγόριθμοι διαφορετικά επίπεδα συμπίεσης.
Ας ξεκινήσουμε με τη δημιουργία ορισμένων δοκιμαστικών αρχείων για συμπίεση:
$ mkdir ~/linux_essentials-3.1 $ cd ~/linux_essentials-3.1 $ mkdir compression archiving $ cd compression $ cat /etc/* > bigfile 2> /dev/null
Τώρα δημιουργούμε τρία αντίγραφα αυτού του αρχείου:
$ cp bigfile bigfile2 $ cp bigfile bigfile3 $ cp bigfile bigfile4 $ ls -lh total 2.8M -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile2 -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile3 -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile4
Τώρα θα συμπιέσουμε τα αρχεία με κάθε προαναφερθέν εργαλείο συμπίεσης:
$ bzip2 bigfile2 $ gzip bigfile3 $ xz bigfile4 $ ls -lh total 1.2M -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile -rw-r--r-- 1 emma emma 170K Jun 23 08:08 bigfile2.bz2 -rw-r--r-- 1 emma emma 179K Jun 23 08:08 bigfile3.gz -rw-r--r-- 1 emma emma 144K Jun 23 08:08 bigfile4.xz
Συγκρίνετε τα μεγέθη των συμπιεσμένων αρχείων με το ασυμπίεστο αρχείο που ονομάζεται bigfile
. Παρατηρήστε επίσης πώς τα εργαλεία συμπίεσης πρόσθεσαν επεκτάσεις στα ονόματα αρχείων και αφαίρεσαν τα ασυμπίεστα αρχεία.
Χρησιμοποιήστε bunzip2
, gunzip
ή unxz
για να αποσυμπιέσετε τα αρχεία:
$ bunzip2 bigfile2.bz2 $ gunzip bigfile3.gz $ unxz bigfile4.xz $ ls -lh total 2.8M -rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile -rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile2 -rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile3 -rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile4
Παρατηρήστε ξανά ότι τώρα το συμπιεσμένο αρχείο διαγράφεται μόλις αποσυμπιεστεί.
Ορισμένα εργαλεία συμπίεσης υποστηρίζουν διαφορετικά επίπεδα συμπίεσης. Ένα υψηλότερο επίπεδο συμπίεσης απαιτεί συνήθως περισσότερη μνήμη και κύκλους CPU, αλλά έχει ως αποτέλεσμα ένα μικρότερο συμπιεσμένο αρχείο. Το αντίθετο ισχύει για ένα χαμηλότερο επίπεδο. Ακολουθεί μια επίδειξη με xz
και gzip
:
$ cp bigfile bigfile-gz1 $ cp bigfile bigfile-gz9 $ gzip -1 bigfile-gz1 $ gzip -9 bigfile-gz9 $ cp bigfile bigfile-xz1 $ cp bigfile bigfile-xz9 $ xz -1 bigfile bigfile-xz1 $ xz -9 bigfile bigfile-xz9 $ ls -lh bigfile bigfile-* * total 3.5M -rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile -rw-r--r-- 1 emma emma 205K Jun 23 13:14 bigfile-gz1.gz -rw-r--r-- 1 emma emma 178K Jun 23 13:14 bigfile-gz9.gz -rw-r--r-- 1 emma emma 156K Jun 23 08:08 bigfile-xz1.xz -rw-r--r-- 1 emma emma 143K Jun 23 08:08 bigfile-xz9.xz
Δεν είναι απαραίτητο να αποσυμπιέζετε ένα αρχείο κάθε φορά που το χρησιμοποιείτε. Τα εργαλεία συμπίεσης συνήθως συνοδεύονται από ειδικές εκδόσεις κοινών εργαλείων που χρησιμοποιούνται για την ανάγνωση αρχείων κειμένου. Για παράδειγμα, το gzip
έχει μια έκδοση των cat
, grep
, diff
, less
, more
και μερικών άλλων. Για το gzip
, τα εργαλεία έχουν το πρόθεμα z
, ενώ το πρόθεμα bz
υπάρχει για το bzip2
και το xz
υπάρχει για το xz
. Ακολουθεί ένα παράδειγμα χρήσης του zcat
για την ανάγνωση εμφάνισης αρχείου συμπιεσμένου με gzip
:
$ cp /etc/hosts ./ $ gzip hosts $ zcat hosts.gz 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Εργαλεία Αρχειοθέτησης
Το πρόγραμμα tar
είναι ίσως το πιο ευρέως χρησιμοποιούμενο εργαλείο αρχειοθέτησης σε συστήματα Linux. Σε περίπτωση που αναρωτιέστε γιατί ονομάστηκε έτσι, είναι συντομογραφία για το “αρχείο ταινίας” [tape archive]. Τα αρχεία που δημιουργούνται με tar
ονομάζονται συχνά tar balls. Είναι πολύ συνηθισμένο οι εφαρμογές που διανέμονται ως πηγαίος κώδικας να είναι σε tar balls.
Η έκδοση GNU του tar
την οποία περιλαμβάνουν οι διανομές Linux έχει πολλές επιλογές. Αυτό το μάθημα πρόκειται να καλύψει το ποιό συχνά χρησιμοποιούμενο υποσύνολο αυτών των επιλογών.
Ας ξεκινήσουμε δημιουργώντας ένα αρχείο των αρχείων που χρησιμοποιήθηκαν για συμπίεση:
$ cd ~/linux_essentials-3.1 $ tar cf archiving/3.1.tar compression
Η επιλογή c
δίνει εντολή στο tar
να δημιουργήσει ένα νέο αρχείο αρχειοθέτησης και η επιλογή f
είναι το όνομα του αρχείου που θα δημιουργηθεί. Το όρισμα αμέσως μετά τις επιλογές θα είναι πάντα το όνομα του αρχείου στο οποίο θα εργαστείτε. Τα υπόλοιπα ορίσματα είναι τα paths προς τυχόν αρχεία ή καταλόγους που θέλετε να προσθέσετε, να παραθέσετε ή να εξαγάγετε από το αρχείο. Στο παράδειγμα, προσθέτουμε τον κατάλογο compression
και όλα τα περιεχόμενά του στο αρχείο.
Για να δείτε τα περιεχόμενα ενός tar ball, χρησιμοποιήστε την επιλογή t
του tar
:
$ tar -tf 3.1.tar compression/ compression/bigfile-xz1.xz compression/bigfile-gz9.gz compression/hosts.gz compression/bigfile2 compression/bigfile compression/bigfile-gz1.gz compression/bigfile-xz9.xz compression/bigfile3 compression/bigfile4
Παρατηρήστε πώς οι επιλογές προηγούνται με -
. Σε αντίθεση με τα περισσότερα προγράμματα, με το tar
, το -
δεν απαιτείται κατά τον καθορισμό των επιλογών, αν και δεν προκαλεί ζημιά η χρήση του.
Note
|
Μπορείτε να χρησιμοποιήσετε την επιλογή |
Τώρα ας εξάγουμε το αρχείο:
$ cd ~/linux_essentials-3.1/archiving $ ls 3.1.tar $ tar xf 3.1.tar $ ls 3.1.tar compression
Ας υποθέσουμε ότι χρειάζεστε μόνο ένα αρχείο από το αρχειοθετημένο αρχείο. Σε αυτή τη περίπτωση, μπορείτε να το καθορίσετε μετά το όνομα του αρχειοθετημένου αρχείου. Μπορείτε να καθορίσετε πολλά αρχεία εάν είναι απαραίτητο:
$ cd ~/linux_essentials-3.1/archiving $ rm -rf compression $ ls 3.1.tar $ tar xvf 3.1.tar compression/hosts.gz compression/ compression/bigfile-xz1.xz compression/bigfile-gz9.gz compression/hosts.gz compression/bigfile2 compression/bigfile compression/bigfile-gz1.gz compression/bigfile-xz9.xz compression/bigfile3 compression/bigfile4 $ ls 3.1.tar compression $ ls compression hosts.gz
Με εξαίρεση τα απόλυτα paths (paths που ξεκινούν με /
), τα αρχεία tar
διατηρούν ολόκληρο το path προς τα αρχεία όταν δημιουργούνται. Εφόσον το αρχείο 3.1.tar
δημιουργήθηκε με έναν μόνο κατάλογο, αυτός ο κατάλογος θα δημιουργηθεί σε σχέση με τον τρέχοντα κατάλογο εργασίας σας κατά την εξαγωγή. Ένα ακόμα παράδειγμα θα το διευκρινίσει:
$ cd ~/linux_essentials-3.1/archiving $ rm -rf compression $ cd ../compression $ tar cf ../tar/3.1-nodir.tar * $ cd ../archiving $ mkdir untar $ cd untar $ tar -xf ../3.1-nodir.tar $ ls bigfile bigfile3 bigfile-gz1.gz bigfile-xz1.xz hosts.gz bigfile2 bigfile4 bigfile-gz9.gz bigfile-xz9.xz
Tip
|
Εάν θέλετε να χρησιμοποιήσετε το απόλυτο path σε ένα αρχείο |
Το πρόγραμμα tar
μπορεί επίσης να διαχειριστεί τη συμπίεση και την αποσυμπίεση των αρχείων εν κινήσει. Το tar
το κάνει αυτό καλώντας ένα από τα εργαλεία συμπίεσης που συζητήθηκαν νωρίτερα σε αυτήν την ενότητα. Είναι τόσο απλό όσο η προσθήκη της κατάλληλης επιλογής για τον αλγόριθμο συμπίεσης. Τα πιο συχνά χρησιμοποιούμενα είναι τα j
, J
και z
για τα bzip2
, xz
και gzip
, αντίστοιχα. Ακολουθούν παραδείγματα με χρήση των προαναφερθέντων αλγορίθμων:
$ cd ~/linux_essentials-3.1/compression $ ls bigfile bigfile3 bigfile-gz1.gz bigfile-xz1.xz hosts.gz bigfile2 bigfile4 bigfile-gz9.gz bigfile-xz9.xz $ tar -czf gzip.tar.gz bigfile bigfile2 bigfile3 $ tar -cjf bzip2.tar.bz2 bigfile bigfile2 bigfile3 $ tar -cJf xz.tar.xz bigfile bigfile2 bigfile3 $ ls -l | grep tar -rw-r--r-- 1 emma emma 450202 Jun 27 05:56 bzip2.tar.bz2 -rw-r--r-- 1 emma emma 548656 Jun 27 05:55 gzip.tar.gz -rw-r--r-- 1 emma emma 147068 Jun 27 05:56 xz.tar.xz
Παρατηρήστε πώς στο παράδειγμα τα αρχεία .tar
έχουν διαφορετικά μεγέθη. Αυτό δείχνει ότι συμπιέστηκαν με επιτυχία. Εάν δημιουργείτε συμπιεσμένα αρχεία .tar
, θα πρέπει πάντα να προσθέτετε μια δεύτερη επέκταση αρχείου που υποδηλώνει τον αλγόριθμο που χρησιμοποιήσατε. Είναι .xz
, .bz
και .gz
για xz
, bzip2`και `gzip
, αντίστοιχα. Μερικές φορές χρησιμοποιούνται συντομευμένες επεκτάσεις όπως .tgz
.
Είναι δυνατή η προσθήκη αρχείων σε ήδη υπάρχοντα μη συμπιεσμένα αρχεία tar. Χρησιμοποιήστε την επιλογή u
για να το κάνετε αυτό. Εάν επιχειρήσετε να προσθέσετε σε ένα συμπιεσμένο αρχείο, θα λάβετε ένα σφάλμα.
$ cd ~/linux_essentials-3.1/compression $ ls bigfile bigfile3 bigfile-gz1.gz bigfile-xz1.xz bzip2.tar.bz2 hosts.gz bigfile2 bigfile4 bigfile-gz9.gz bigfile-xz9.xz gzip.tar.gz xz.tar.xz $ tar cf plain.tar bigfile bigfile2 bigfile3 $ tar tf plain.tar bigfile bigfile2 bigfile3 $ tar uf plain.tar bigfile4 $ tar tf plain.tar bigfile bigfile2 bigfile3 bigfile4 $ tar uzf gzip.tar.gz bigfile4 tar: Cannot update compressed archives Try 'tar --help' or 'tar --usage' for more information.
Διαχείριση Αρχείων ZIP
Οι μηχανές με Windows συχνά δεν διαθέτουν εφαρμογές για να χειρίζονται tar balls ή πολλά από τα εργαλεία συμπίεσης που βρίσκονται συνήθως σε συστήματα Linux. Εάν χρειάζεται να αλληλεπιδράσετε με συστήματα Windows, μπορείτε να χρησιμοποιήσετε αρχεία ZIP. Ένα αρχείο ZIP είναι ένα αρχείο αρχειοθέτησης παρόμοιο με ένα συμπιεσμένο αρχείο tar
.
Τα προγράμματα zip
και unzip
μπορούν να χρησιμοποιηθούν για εργασία με αρχεία ZIP σε συστήματα Linux. Το παρακάτω παράδειγμα θα πρέπει να είναι το μόνο που χρειάζεστε για να ξεκινήσετε να τα χρησιμοποιείτε. Αρχικά δημιουργούμε ένα σύνολο αρχείων:
$ cd ~/linux_essentials-3.1 $ mkdir zip $ cd zip/ $ mkdir dir $ touch dir/file1 dir/file2
Τώρα χρησιμοποιούμε το zip
για να πακετάρουμε αυτά τα αρχεία σε ένα αρχείο ZIP:
$ zip -r zipfile.zip dir adding: dir/ (stored 0%) adding: dir/file1 (stored 0%) adding: dir/file2 (stored 0%) $ rm -rf dir
Τέλος, ξεπακετάρουμε ξανά το αρχείο ZIP:
$ ls zipfile.zip $ unzip zipfile.zip Archive: zipfile.zip creating: dir/ extracting: dir/file1 extracting: dir/file2 $ find . ./zipfile.zip ./dir ./dir/file1 ./dir/file2
Κατά την προσθήκη καταλόγων σε αρχεία ZIP, η επιλογή -r
κάνει το zip
να περιλαμβάνει τα περιεχόμενα ενός καταλόγου. Χωρίς αυτό, θα είχατε έναν κενό κατάλογο στο αρχείο ZIP.
Καθοδηγούμενες Ασκήσεις
-
Σύμφωνα με τις επεκτάσεις, ποια από τα παρακάτω εργαλεία χρησιμοποιήθηκαν για τη δημιουργία αυτών των αρχείων;
Όνομα αρχείου tar
gzip
bzip2
xz
archive.tar
archive.tgz
archive.tar.xz
-
Σύμφωνα με τις επεκτάσεις, ποια από αυτά τα αρχεία είναι αρχειοθετημένα και ποια είναι συμπιεσμένα;
Όνομα αρχείου Αρχειοθετημένο Συμπιεσμένο file.tar
file.tar.bz2
file.zip
file.xz
-
Πώς θα προσθέτατε ένα αρχείο σε ένα αρχειοθετημένο αρχείο
tar
συμπιεσμένο μεgzip
; -
Ποια επιλογή του
tar
δίνει εντολή στοtar
να συμπεριλάβει το προπορευόμενο/
σε απόλυτα paths; -
Υποστηρίζει Το
zip
διαφορετικά επίπεδα συμπίεσης;
Ασκήσεις Εξερεύνησης
-
Κατά την εξαγωγή αρχείων, υποστηρίζει το
tar
globs στη λίστα αρχείων; -
Πώς μπορείτε να βεβαιωθείτε ότι ένα αποσυμπιεσμένο αρχείο είναι πανομοιότυπο με το αρχείο πριν αυτό συμπιεστεί;
-
Τι συμβαίνει εάν προσπαθήσετε να εξαγάγετε ένα αρχείο από ένα αρχείο
tar
που υπάρχει ήδη στο σύστημα αρχείων σας; -
Πώς θα εξάγατε το αρχείο
archive.tgz
χωρίς να χρησιμοποιήσετε την επιλογήz
τουtar
;
Σύνοψη
Τα συστήματα Linux διαθέτουν πολλά διαθέσιμα εργαλεία συμπίεσης και αρχειοθέτησης. Αυτό το μάθημα κάλυψε τα πιο συνηθισμένα. Το πιο κοινό εργαλείο αρχειοθέτησης είναι το tar
. Εάν η αλληλεπίδραση με συστήματα Windows είναι απαραίτητη, το zip
και το unzip
μπορούν να δημιουργήσουν και να εξαγάγουν αρχεία ZIP.
Η εντολή tar
έχει μερικές επιλογές που αξίζει να απομνημονεύσετε. Είναι x
για εξαγωγή, c
για δημιουργία, t
για προβολή περιεχομένων και u
για προσθήκη ή αντικατάσταση αρχείων. Η επιλογή v
παραθέτει τα αρχεία που υποβάλλονται σε επεξεργασία από το tar
κατά τη δημιουργία ή την εξαγωγή ενός αρχείου.
Το repository μιας τυπικής διανομής Linux έχει πολλά εργαλεία συμπίεσης. Τα πιο συνηθισμένα είναι τα gzip
, bzip2
και xz
. Οι αλγόριθμοι συμπίεσης συχνά υποστηρίζουν διαφορετικά επίπεδα που σας επιτρέπουν να βελτιστοποιήσετε την ταχύτητα ή το μέγεθος του αρχείου. Τα αρχεία μπορούν να αποσυμπιεστούν με gunzip
, bunzip2
και unxz
.
Τα εργαλεία συμπίεσης έχουν συνήθως προγράμματα που συμπεριφέρονται σαν κοινά εργαλεία αρχείων κειμένου, με τη διαφορά ότι λειτουργούν σε συμπιεσμένα αρχεία. Μερικά από αυτά είναι τα zcat
, bzcat
και zcat
. Τα εργαλεία συμπίεσης συνήθως συμπεριλαμβάνουν προγράμματα με τη λειτουργικότητα των grep
, more
, ess
, diff
και cmp
.
Εντολές που χρησιμοποιήθηκαν στις ασκήσεις:
bunzip2
-
Αποσυμπιέστε ένα συμπιεσμένο αρχείο
bzip2
. bzcat
-
Εξαγωγή των περιεχομένων ενός συμπιεσμένου αρχείου
bzip
. bzip2
-
Συμπιέστε αρχεία χρησιμοποιώντας τον αλγόριθμο και την μορφή
bzip2
. gunzip
-
Αποσυμπιέστε ένα συμπιεσμένο αρχείο
gzip
. gzip
-
Συμπίεση αρχείων χρησιμοποιώντας τον αλγόριθμο και τη μορφή
gzip
. tar
-
Δημιουργία, ενημέρωση, παράθεση και εξαγωγή αρχείων
tar
. unxz
-
Αποσυμπιέστε ένα συμπιεσμένο αρχείο
xz
. unzip
-
Αποσυμπίεση και εξαγωγή περιεχομένου από ένα αρχείο ZIP.
xz
Συμπίεση αρχείων χρησιμοποιώντας τον αλγόριθμο και τη μορφή xz
.
zcat
-
Εξαγωγή των περιεχομένων ενός συμπιεσμένου αρχείου
gzip
. zip
-
Δημιουργία και συμπίεση αρχείων ZIP.
Απαντήσεις στις Καθοδηγούμενες Ασκήσεις
-
Σύμφωνα με τις επεκτάσεις, ποια από τα παρακάτω εργαλεία χρησιμοποιήθηκαν για τη δημιουργία αυτών των αρχείων;
Όνομα αρχείου tar
gzip
bzip2
xz
archive.tar
X
archive.tgz
X
X
archive.tar.xz
X
X
-
Σύμφωνα με τις επεκτάσεις, ποια από αυτά τα αρχεία είναι αρχειοθετημένα και ποια είναι συμπιεσμένα;
Όνομα αρχείου Αρχειοθετημένο Συμπιεσμένο file.tar
X
file.tar.bz2
X
X
file.zip
X
X
file.xz
X
-
Πώς θα προσθέτατε ένα αρχείο σε ένα αρχειοθετημένο αρχείο
tar
συμπιεσμένο μεgzip
;Θα αποσυμπιέσετε το αρχείο με
gunzip
, θα προσθέσετε το αρχείο με τοtar uf
και μετά θα το συμπιέσετε με τοgzip
-
Ποια επιλογή του
tar
δίνει εντολή στοtar
να συμπεριλάβει το προπορευόμενο/
σε απόλυτα paths;Η επιλογή
-P
. Από τη σελίδα man:-P, --absolute-names Don't strip leading slashes from file names when creating archives
-
Υποστηρίζει Το
zip
διαφορετικά επίπεδα συμπίεσης;Ναί. Θα χρησιμοποιούσατε το
-#
, αντικαθιστώντας το#
με έναν αριθμό από 0-9. Από τη σελίδα man:-# (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9) Regulate the speed of compression using the specified digit #, where -0 indicates no compression (store all files), -1 indi‐ cates the fastest compression speed (less compression) and -9 indicates the slowest compression speed (optimal compression, ignores the suffix list). The default compression level is -6. Though still being worked, the intention is this setting will control compression speed for all compression methods. Cur‐ rently only deflation is controlled.
Απαντήσεις στις Ασκήσεις Εξερεύνησης
-
Κατά την εξαγωγή αρχείων, υποστηρίζει το
tar
globs στη λίστα αρχείων;Ναι, θα χρησιμοποιούσατε την επιλογή
--wildcards
. Η επιλογή--wildcards
πρέπει να τοποθετείται αμέσως μετά το αρχείοtar
όταν χρησιμοποιείτε τις επιλογές χωρίς παύλα ως τρόπο . Για παράδειγμα:$ tar xf tarfile.tar --wildcards dir/file* $ tar --wildcards -xf tarfile.tar dir/file*
-
Πώς μπορείτε να βεβαιωθείτε ότι ένα αποσυμπιεσμένο αρχείο είναι πανομοιότυπο με το αρχείο πριν αυτό συμπιεστεί;
Δεν χρειάζεται να κάνετε τίποτα με τα εργαλεία που συζητήθηκαν σε αυτό το μάθημα. Και τα τρία περιλαμβάνουν αθροίσματα ελέγχου στη μορφή του αρχείου τους που επαληθεύεται όταν αποσυμπιέζονται.
-
Τι συμβαίνει εάν προσπαθήσετε να εξαγάγετε ένα αρχείο από ένα αρχείο
tar
που υπάρχει ήδη στο σύστημα αρχείων σας;Το αρχείο στο σύστημα αρχείων σας αντικαθίσταται με την έκδοση που βρίσκεται στο αρχείο
tar
. -
Πώς θα εξάγατε το αρχείο
archive.tgz
χωρίς να χρησιμοποιήσετε την επιλογήz
τουtar
;Θα το αποσυμπιέσετε πρώτα με
gunzip
.$ gunzip archive.tgz $ tar xf archive.tar