Linux Professional Institute Learning Logo.
Mετάβαση στο κύριο περιεχόμενο
  • Αρχική
    • Διαθέσιμοι Πόροι
    • Μαθησιακά Υλικά LPI
    • Γίνε Συνεργάτης
    • Συνεργάτες Εκδόσεων
    • Γίνε Συνεργάτης Εκδόσεων
    • Σχετικά
    • FAQ
    • Συνεργάτες
    • Roadmap
    • Επικοινωνία
  • LPI.org
3.1 Μάθημα 1
Θέμα 1: Η κοινότητα Linux και μια καριέρα στον Ανοιχτό Κώδικα
1.1 Εξέλιξη του Linux και Δημοφιλή Λειτουργικά Συστήματα
  • 1.1 Μάθημα 1
1.2 Κύριες Εφαρμογές Ανοιχτού Κώδικα
  • 1.2 Μάθημα 1
1.3 Λογισμικό Ανοιχτού Κώδικα και Αδειοδότηση
  • 1.3 Μάθημα 1
1.4 Δεξιότητες ICT και Εργασία στο Linux
  • 1.4 Μάθημα 1
Θέμα 2: Βρίσκοντας το Δρόμο σας σε ένα Σύστημα Linux
2.1 Βασικά Στοιχεία Γραμμής Εντολών
  • 2.1 Μάθημα 1
  • 2.1 Μάθημα 2
2.2 Χρήση της Γραμμής Εντολών για Λήψη Βοήθειας
  • 2.2 Μάθημα 1
2.3 Χρήση Καταλόγων και Παράθεση Αρχείων
  • 2.3 Μάθημα 1
  • 2.3 Μάθημα 2
2.4 Δημιουργία, Μετακίνηση και Διαγραφή Αρχείων
  • 2.4 Μάθημα 1
Θέμα 3: Η Δύναμη της Γραμμής Εντολών
3.1 Αρχειοθέτηση Αρχείων στη Γραμμή Εντολών
  • 3.1 Μάθημα 1
3.2 Αναζήτηση και Εξαγωγή Δεδομένων από Αρχεία
  • 3.2 Μάθημα 1
  • 3.2 Μάθημα 2
3.3 Μετατροπή Εντολών σε Σενάριο
  • 3.3 Μάθημα 1
  • 3.3 Μάθημα 2
Θέμα 4: Το Λειτουργικό Σύστημα Linux
4.1 Επιλογή Λειτουργικού Συστήματος
  • 4.1 Μάθημα 1
4.2 Κατανόηση του Υλικού του Υπολογιστή
  • 4.2 Μάθημα 1
4.3 Πού Αποθηκεύονται τα Δεδομένα
  • 4.3 Μάθημα 1
  • 4.3 Μάθημα 2
4.4 Ο Υπολογιστής σας στο Δίκτυο
  • 4.4 Μάθημα 1
Θέμα 5: Ασφάλεια και Δικαιώματα Αρχείων
5.1 Βασική Ασφάλεια και Αναγνώριση Τύπων Χρηστών
  • 5.1 Μάθημα 1
5.2 Δημιουργία Χρηστών και Ομάδων
  • 5.2 Μάθημα 1
5.3 Διαχείριση Δικαιωμάτων και Ιδιοκτησίας Αρχείων
  • 5.3 Μάθημα 1
5.4 Ειδικοί Κατάλογοι και Αρχεία
  • 5.4 Μάθημα 1
How to get certified
  1. Θέμα 3: Η Δύναμη της Γραμμής Εντολών
  2. 3.1 Αρχειοθέτηση Αρχείων στη Γραμμή Εντολών
  3. 3.1 Μάθημα 1

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

Μπορείτε να χρησιμοποιήσετε την επιλογή -v για να επιτρέψετε στο tar να εξάγει τα ονόματα των αρχείων στα οποία λειτουργεί κατά τη δημιουργία ή την εξαγωγή ενός αρχείου.

Τώρα ας εξάγουμε το αρχείο:

$ 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, πρέπει να χρησιμοποιήσετε την επιλογή P. Λάβετε υπόψη ότι αυτό μπορεί να αντικαταστήσει σημαντικά αρχεία και να προκαλέσει σφάλματα στο σύστημά σας.

Το πρόγραμμα 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.

Καθοδηγούμενες Ασκήσεις

  1. Σύμφωνα με τις επεκτάσεις, ποια από τα παρακάτω εργαλεία χρησιμοποιήθηκαν για τη δημιουργία αυτών των αρχείων;

    Όνομα αρχείου tar gzip bzip2 xz

    archive.tar

    archive.tgz

    archive.tar.xz

  2. Σύμφωνα με τις επεκτάσεις, ποια από αυτά τα αρχεία είναι αρχειοθετημένα και ποια είναι συμπιεσμένα;

    Όνομα αρχείου Αρχειοθετημένο Συμπιεσμένο

    file.tar

    file.tar.bz2

    file.zip

    file.xz

  3. Πώς θα προσθέτατε ένα αρχείο σε ένα αρχειοθετημένο αρχείο tar συμπιεσμένο με gzip;

  4. Ποια επιλογή του tar δίνει εντολή στο tar να συμπεριλάβει το προπορευόμενο / σε απόλυτα paths;

  5. Υποστηρίζει Το zip διαφορετικά επίπεδα συμπίεσης;

Ασκήσεις Εξερεύνησης

  1. Κατά την εξαγωγή αρχείων, υποστηρίζει το tar globs στη λίστα αρχείων;

  2. Πώς μπορείτε να βεβαιωθείτε ότι ένα αποσυμπιεσμένο αρχείο είναι πανομοιότυπο με το αρχείο πριν αυτό συμπιεστεί;

  3. Τι συμβαίνει εάν προσπαθήσετε να εξαγάγετε ένα αρχείο από ένα αρχείο tar που υπάρχει ήδη στο σύστημα αρχείων σας;

  4. Πώς θα εξάγατε το αρχείο 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.

Απαντήσεις στις Καθοδηγούμενες Ασκήσεις

  1. Σύμφωνα με τις επεκτάσεις, ποια από τα παρακάτω εργαλεία χρησιμοποιήθηκαν για τη δημιουργία αυτών των αρχείων;

    Όνομα αρχείου tar gzip bzip2 xz

    archive.tar

    X

    archive.tgz

    X

    X

    archive.tar.xz

    X

    X

  2. Σύμφωνα με τις επεκτάσεις, ποια από αυτά τα αρχεία είναι αρχειοθετημένα και ποια είναι συμπιεσμένα;

    Όνομα αρχείου Αρχειοθετημένο Συμπιεσμένο

    file.tar

    X

    file.tar.bz2

    X

    X

    file.zip

    X

    X

    file.xz

    X

  3. Πώς θα προσθέτατε ένα αρχείο σε ένα αρχειοθετημένο αρχείο tar συμπιεσμένο με gzip;

    Θα αποσυμπιέσετε το αρχείο με gunzip, θα προσθέσετε το αρχείο με το tar uf και μετά θα το συμπιέσετε με το gzip

  4. Ποια επιλογή του tar δίνει εντολή στο tar να συμπεριλάβει το προπορευόμενο / σε απόλυτα paths;

    Η επιλογή -P. Από τη σελίδα man:

    -P, --absolute-names
            Don't strip leading slashes from file names when creating  archives
  5. Υποστηρίζει Το 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.

Απαντήσεις στις Ασκήσεις Εξερεύνησης

  1. Κατά την εξαγωγή αρχείων, υποστηρίζει το tar globs στη λίστα αρχείων;

    Ναι, θα χρησιμοποιούσατε την επιλογή --wildcards. Η επιλογή --wildcards πρέπει να τοποθετείται αμέσως μετά το αρχείο tar όταν χρησιμοποιείτε τις επιλογές χωρίς παύλα ως τρόπο . Για παράδειγμα:

    $ tar xf tarfile.tar --wildcards dir/file*
    $ tar --wildcards -xf tarfile.tar dir/file*
  2. Πώς μπορείτε να βεβαιωθείτε ότι ένα αποσυμπιεσμένο αρχείο είναι πανομοιότυπο με το αρχείο πριν αυτό συμπιεστεί;

    Δεν χρειάζεται να κάνετε τίποτα με τα εργαλεία που συζητήθηκαν σε αυτό το μάθημα. Και τα τρία περιλαμβάνουν αθροίσματα ελέγχου στη μορφή του αρχείου τους που επαληθεύεται όταν αποσυμπιέζονται.

  3. Τι συμβαίνει εάν προσπαθήσετε να εξαγάγετε ένα αρχείο από ένα αρχείο tar που υπάρχει ήδη στο σύστημα αρχείων σας;

    Το αρχείο στο σύστημα αρχείων σας αντικαθίσταται με την έκδοση που βρίσκεται στο αρχείο tar.

  4. Πώς θα εξάγατε το αρχείο archive.tgz χωρίς να χρησιμοποιήσετε την επιλογή z του tar;

    Θα το αποσυμπιέσετε πρώτα με gunzip.

    $ gunzip archive.tgz
    $ tar xf archive.tar

Linux Professional Insitute Inc. All rights reserved. Επισκεφθείτε την ιστοσελίδα των Μαθησιακών Υλικών: https://learning.lpi.org
Αυτό το έργο έχει άδεια βάσει της Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Επόμενο Μάθημα

3.2 Αναζήτηση και Εξαγωγή Δεδομένων από Αρχεία (3.2 Μάθημα 1)

Διάβασε το επόμενο μάθημα

Linux Professional Insitute Inc. All rights reserved. Επισκεφθείτε την ιστοσελίδα των Μαθησιακών Υλικών: https://learning.lpi.org
Αυτό το έργο έχει άδεια βάσει της Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Το LPI είναι ένας μη κερδοσκοπικός οργανισμός.

© 2022 Το Linux Professional Institute (LPI) είναι το παγκόσμιο πρότυπο πιστοποίησης και οργανισμός υποστήριξης σταδιοδρομίας για επαγγελματίες ανοιχτού κώδικα. Με περισσότερους από 200.000 κατόχους πιστοποίησης, είναι ο πρώτος και μεγαλύτερος στον κόσμο ουδέτερος οργανισμός πιστοποιήσεων Linux και ανοιχτού κώδικα. Το LPI έχει πιστοποιημένους επαγγελματίες σε περισσότερες από 180 χώρες, παραδίδει εξετάσεις σε πολλές γλώσσες και έχει εκατοντάδες συνεργάτες εκπαίδευσης.

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

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Επικοινωνήστε Μαζί Μας
  • Πολιτική Απορρήτου και Πολιτική Cookie

Εντοπίσατε ένα λάθος ή θέλετε να βοηθήσετε στη βελτίωση αυτής της σελίδας; Παρακαλούμε ενημερώστε μας.

© 1999–2022 The Linux Professional Institute Inc. All rights reserved.