Πώς να αντιγράψετε αρχεία χρησιμοποιώντας την εντολή “install” στο Linux

Η εγκατάσταση είναι μια ευέλικτη εντολή αντιγραφής αρχείων σε Linux και macOS. Είναι τέλειο για τους δυναμικούς χρήστες που αναζητούν αποτελεσματικότητα. Διαβάστε αυτό το άρθρο για να ανακαλύψετε πώς να εργάζεστε πιο έξυπνα—όχι πιο σκληρά.

Περιμένετε—Δεν είναι για εγκατάσταση λογισμικού;

Η εντολή εγκατάστασης μπορεί να έχει το πιο παραπλανητικό όνομα από οποιαδήποτε από τις εντολές Linux. Στην πραγματικότητα δεν εγκαθιστά κανένα λογισμικό. Εάν προσπαθείτε να εγκαταστήσετε ένα πακέτο λογισμικού από τη γραμμή εντολών στο Ubuntu ή σε άλλη διανομή που βασίζεται στο Debian, χρησιμοποιήστε την εντολή apt-get. Σε άλλες διανομές Linux, χρησιμοποιήστε αντί αυτού το εργαλείο διαχείρισης πακέτων της διανομής σας Linux—για παράδειγμα, dnf στο Fedora ή zypper στο openSUSE.

Τι κάνει λοιπόν η εγκατάσταση;

Με λίγα λόγια, η εγκατάσταση συνδυάζει στοιχεία από το cp (αντίγραφο), chown (αλλαγή ιδιοκτήτη), chmod (αλλαγή λειτουργίας), mkdir (δημιουργία καταλόγου), και λωρίδα (σύμβολα λουρίδων) εντολές. Σας επιτρέπει να χρησιμοποιείτε λειτουργίες από όλες αυτές σε μία μόνο ενέργεια.

Η εντολή εγκατάστασης μπορεί:

Αντιγράψτε αρχεία όπως η εντολή cp.
Επιλέξτε εάν θα αντικαταστήσετε υπάρχοντα αρχεία.
Δημιουργήστε τον κατάλογο προορισμού εάν δεν υπάρχει, όπως το mkdir.
Ορίστε τις σημαίες δικαιωμάτων χρήστη των αρχείων, όπως ακριβώς η εντολή chmod.
Ορίστε τον κάτοχο των αρχείων, όπως ακριβώς η εντολή chown.
Αφαιρέστε τις μη βασικές αποσκευές από εκτελέσιμα αρχεία, όπως ακριβώς η εντολή strip.

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

Πότε θα το χρησιμοποιούσατε

Η εντολή εγκατάστασης πιθανότατα δεν θα χρησιμοποιείται κάθε μέρα. Είναι χρήσιμο, αλλά μόνο για ορισμένες περιπτώσεις. Ένα σενάριο όπου η εγκατάσταση έρχεται από μόνη της είναι η ανάπτυξη λογισμικού. Ας υποθέσουμε ότι προγραμματίζετε ένα νέο βοηθητικό πρόγραμμα. Θα χρειαστεί να κάνετε δοκιμές εκτός του περιβάλλοντος ανάπτυξης. Για να το κάνετε αυτό, πρέπει να αντιγράψετε τα νέα αρχεία προγράμματος σε έναν δοκιμαστικό κατάλογο. Ίσως χρειαστεί να δημιουργηθεί ο δοκιμαστικός κατάλογος και πρέπει να ορίσετε τα σωστά δικαιώματα και την ιδιοκτησία για τα αρχεία.

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

  Πώς να εγκαταστήσετε το Mailspring σε Linux

Ενα παράδειγμα

Ένας προγραμματιστής εργάζεται σε ένα τέτοιο νέο βοηθητικό πρόγραμμα, που ονομάζεται ana. Αποτελείται από ένα εκτελέσιμο δυαδικό αρχείο και μια βάση δεδομένων. Μετά τη δοκιμή, πρέπει να αντιγραφεί στο /usr/local/bin για να είναι διαθέσιμο σε όλους τους χρήστες του συστήματος Linux. Θα χρειαστεί να αντικαταστήσετε τα ονόματα αρχείων και τις διαδρομές καταλόγου στο παράδειγμά μας με τα αρχεία και τις διαδρομές που χρησιμοποιείτε στον υπολογιστή σας όταν χρησιμοποιείτε την εγκατάσταση.

Μέχρι να είναι έτοιμο για κυκλοφορία, θα δοκιμαστεί σε έναν κατάλογο που ονομάζεται ~/test/ana. Τα μέλη της ομάδας geek θα έχουν δικαιώματα ανάγνωσης και εκτέλεσης. Άλλοι χρήστες θα έχουν επίσης δικαιώματα ανάγνωσης και εκτέλεσης. Η εντολή εγκατάστασης χρησιμοποιεί την ίδια αριθμητική αναπαράσταση για δικαιώματα όπως και το chmod. Ο προγραμματιστής μας αποφάσισε ότι τα δικαιώματα πρέπει να οριστούν σε:

Κάτοχος: Διαβάστε, γράψτε και εκτελέστε.
Ομάδα: Διαβάστε και εκτελέστε.
Άλλα: Εκτέλεση μόνο.

Πώς να χρησιμοποιήσετε την εντολή εγκατάστασης

Ο κατάλογος εργασίας του φανταστικού προγραμματιστή μας είναι ~/work. Έχει γράψει το πρόγραμμα, το μεταγλωττίζει και έχει δημιουργήσει ένα δυαδικό που ονομάζεται ana. Έχει ήδη δημιουργήσει το αρχείο βάσης δεδομένων με το οποίο λειτουργεί η ana, Words.db. Έτσι και τα δύο αρχεία είναι έτοιμα για δοκιμή. Ας τους ρίξουμε μια ματιά:

ls -l ana Words.db

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

Ο προγραμματιστής μας έχει επικαλεστεί το ana με τη φράση “μπισκότο” και όλα φαίνονται καλά. Τώρα θέλει να αντιγράψει αυτά τα δύο αρχεία στον κατάλογο ~/test/ana για να δει εάν το νέο βοηθητικό πρόγραμμα λειτουργεί σωστά μακριά από το περιβάλλον ανάπτυξης. Εκδίδει την ακόλουθη εντολή:

install -D -v ana Words.db -t ~/test/ana

Οι επιλογές που χρησιμοποιήθηκαν στη γραμμή εντολών ήταν:

Δ: Δημιουργήστε καταλόγους, συμπεριλαμβανομένων των γονικών καταλόγων, εάν απαιτείται.
v: Verbose, καταχωρίστε κάθε κατάλογο όπως έχει δημιουργηθεί και κάθε αντίγραφο αρχείου όπως εκτελείται.
t: Κατάλογος στόχος.

Μπορούμε να δούμε ότι η εγκατάσταση δημιουργεί τον κατάλογο ~/test και, στη συνέχεια, δημιουργεί τον κατάλογο ~/test/ana. Τα αρχεία παρατίθενται ένα προς ένα καθώς αντιγράφονται στον κατάλογο προορισμού.

Η λίστα των αρχείων στο ~/test/ana επιβεβαιώνει ότι έχουν αντιγραφεί σωστά.

ls -l

Το επόμενο βήμα είναι να δοκιμάσετε το βοηθητικό πρόγραμμα ana καλώντας το στον κατάλογο ~/test/ana.

Το βοηθητικό πρόγραμμα λειτουργεί όπως αναμενόταν, το οποίο είναι υπέροχο. Ωστόσο, οι άδειες δεν είναι σωστές. Η απαίτηση είναι να ορίσετε τα μέλη του γκρουπ geek να έχουν δικαιώματα ανάγνωσης και εκτέλεσης και για άλλους χρήστες να έχουν μόνο execut.

  4 Καλύτερες συσκευές αναπαραγωγής βίντεο για Linux

Μπορούμε να αντιμετωπίσουμε και τα δύο αυτά ζητήματα πολύ απλά με την ακόλουθη εντολή. Σημειώστε τη χρήση του sudo για την εκτέλεση της εντολής με δικαιώματα root. Οι επιλογές -o και -g και το απαιτούν αυτό. Θα μας ζητηθεί ο κωδικός πρόσβασής μας όταν εκδώσουμε την εντολή.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

Η επιλογή -b (αντίγραφο ασφαλείας) δημιουργεί αντίγραφα ασφαλείας των αρχείων πριν αντικατασταθούν.
Η επιλογή -S (επίθημα) ορίζει το επίθημα για τα αρχεία αντιγράφων ασφαλείας. Εάν δεν παρέχετε επίθημα, χρησιμοποιείται ~ (tilde). Ζητάμε την εγκατάσταση να χρησιμοποιήσει ένα επίθημα .bak.
Ορίζουμε τον κάτοχο του αρχείου να είναι dave χρησιμοποιώντας την επιλογή -o (κάτοχος).
Η επιλογή -g (ομάδα) απαιτεί το όνομα μιας ομάδας. Αυτό γίνεται η ομάδα κατόχων των αρχείων. Η ομάδα που θα χρησιμοποιήσουμε ονομάζεται geek.
Η επιλογή -m (mode) ορίζει τις λειτουργίες αρχείων για τα αρχεία, χρησιμοποιώντας την τυπική αριθμητική σύνταξη chmod.

Δεν χρειάζεται πλέον να χρησιμοποιούμε την επιλογή -D (δημιουργία καταλόγων), επειδή γνωρίζουμε ότι ο κατάλογος δοκιμής υπάρχει ήδη. Επίσης, παραλείψαμε την επιλογή -v (verbose). Η λίστα των αρχείων στον κατάλογο ~/test/ana μας δείχνει τις λεπτομέρειες του αρχείου:

ls -l

Αυτό επιβεβαιώνει ότι όλες οι απαιτήσεις μας πληρούνται.

Τα αρχεία έχουν αντιγραφεί στον κατάλογο δοκιμών.
Τα δικαιώματα έχουν ρυθμιστεί σωστά.
Ο dave είναι ο κάτοχος των αρχείων.
Η ομάδα geek είναι η ομάδα κατόχων των δύο αρχείων.
Έχουν δημιουργηθεί αντίγραφα ασφαλείας για κάθε αρχείο, που ονομάζονται ana.bak και Words.db.bak.

Όλα αυτά επιτεύχθηκε με τη χρήση μιας εντολής. Καθαρός.

Ο προγραμματιστής μας κάνει κάποιες τελικές αλλαγές στο βοηθητικό πρόγραμμα και μεταγλωττίζει εκ νέου. Τα αρχεία που έχουν αλλάξει πρέπει να αντιγραφούν στον κατάλογο ~/test/ana από τον κατάλογο ~/work. Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας την επιλογή -C (σύγκριση). Εάν το αρχείο προέλευσης και το αρχείο προορισμού είναι το ίδιο, το αρχείο προέλευσης δεν αντιγράφεται.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

Η καταχώριση των αρχείων στον κατάλογο προορισμού μας δείχνει ότι το μέγεθος αρχείου του αρχείου ana έχει αλλάξει. Είναι μεγαλύτερο από το ana.bakfile. Η χρονική σήμανση στο ana έχει επίσης αλλάξει. Αυτές οι αλλαγές οφείλονται στο ότι η νέα έκδοση του αρχείου έχει αντιγραφεί εδώ.

ls -l

Το μέγεθος του αρχείου και η χρονική σήμανση του αρχείου Words.db δεν έχουν αλλάξει. Δεν έγιναν αλλαγές στο αρχείο Words.db, επομένως δεν αντιγράφηκε. Σε ένα έργο με πολλά αρχεία, η επιλογή -C (σύγκριση) μπορεί να εξοικονομήσει πολύ χρόνο και τον σκληρό δίσκο, αντιγράφοντας μόνο εκείνα τα αρχεία που έχουν αλλάξει.

  Πώς να δημιουργήσετε έναν διακομιστή αντιγράφων ασφαλείας Dropbox σε Linux

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

Είναι καιρός να χρησιμοποιήσετε την εγκατάσταση για να αντιγράψετε τα αρχεία στον κατάλογο /usr/local/bin. Αυτό θα καταστήσει το νέο βοηθητικό πρόγραμμα διαθέσιμο για όλους τους χρήστες αυτού του υπολογιστή Linux. Γνωρίζουμε ότι το /usr/local/bin υπάρχει, επομένως δεν χρειάζεται να δημιουργήσουμε αυτόν τον κατάλογο. Μπορούμε να χρησιμοποιήσουμε μια τροποποιημένη έκδοση της τελευταίας εντολής μας.

Έχουμε αλλάξει τον κατάλογο προορισμού σε /usr/local/bin. Καταργήσαμε την επιλογή -C (σύγκριση) επειδή δεν υπάρχουν ακόμα αντίγραφα αυτών των αρχείων στον κατάλογο προορισμού, επομένως δεν υπάρχει τίποτα για σύγκριση. Ομοίως, δεν υπάρχει τίποτα για δημιουργία αντιγράφων ασφαλείας, οπότε μπορούμε να αφαιρέσουμε την επιλογή -b (εφεδρική) και την επιλογή -S (κατάληξη).

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

Μπορούμε να αναφέρουμε ότι τα αρχεία έχουν φτάσει στο /usr/local/bin:

ls -l

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

Σημειώστε ότι δεν χρειάστηκε να προλογίσουμε την εντολή ana με ./ που σημαίνει ότι εκτελείται από το /usr/local/bin. Αποστολή εξετελέσθει.

Αναφέραμε ότι η εγκατάσταση μπορεί να αφαιρέσει περιττούς πίνακες συμβόλων και άλλες αποσκευές μέσα από το δυαδικό αρχείο, για να το μειώσει σε μέγεθος. Ας το κάνουμε τώρα. Σημειώστε ότι η παρακάτω εντολή δεν περιλαμβάνει το Words.db. Αυτό συμβαίνει επειδή το Words.db είναι ένα αρχείο βάσης δεδομένων και όχι ένα δυαδικό εκτελέσιμο αρχείο. Για να αντιγράψουμε και να συρρικνώσουμε το δυαδικό αρχείο ana μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή. Προσθέσαμε την επιλογή -s (shrink) με πεζό “s”. Προσθέσαμε ξανά την επιλογή -b (εφεδρική) και την επιλογή -S (κατάληξη), με κεφαλαία “S”.

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

Η καταχώριση των αρχείων στο /usr/local/bin μας επιτρέπει να συγκρίνουμε το μέγεθος του αρχείου ana με την εφεδρική του έκδοση. Το αρχείο ana έχει μειωθεί σχεδόν στο 60% του προηγούμενου μεγέθους του.

ls -l /usr/local/bin

Συνοψίζοντας

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