10 χρήσιμες πρακτικές της εντολής locate


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

Το Linux, όπως και οποιοδήποτε άλλο ΛΣ, χρησιμοποιεί διάφορους μηχανισμούς προκειμένου να επιστρέψει αποτελέσματα στις αναζητήσεις των χρηστών. Δύο από τους δημοφιλέστερους είναι οι εντολές find και locate.

Αξίζει να σημειωθεί ότι και οι 2 εντολές δουλεύουν εξαιρετικά αλλά στο παρόν άρθρο θα επικεντρωθούμε στη χρήση της locate,  η οποία είναι πιο βολική από τις 2 καθώς χρησιμοποιεί πιο αποδοτικούς τρόπους να επιστρέφει αποτελέσματα στις αναζητήσεις των χρηστών.

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

Ακολουθούν 10 απλές πρακτικές της locate προκειμένου να γίνουμε πιο παραγωγικοί με το Linux σύστημα μας.

1. Χρήση της locate

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

locate ονομααρχείου

2. Περιορισμός των αποτελεσμάτων σε ένα συγκεκριμένο αριθμό

Μπορούμε να περιορίσουμε τον αριθμό των αποτελεσμάτων προκειμένου να αποφύγουμε πλεονασμούς, χρησιμοποιώντας την παράμετρο «-n»

Για παράδειγμα αν θέλουμε μόνο 20 αποτελέσματα στην αναζήτηση μας δίνουμε την ακόλουθη εντολή.

locate "*.docx" -n 20

Τα αποτελέσματα μας δείχνουν τα πρώτα 20 αρχεία με κατάληξη .docx

3. Δείτε τον αριθμό των αντίστοιχων καταχωρήσεων

Στην περίπτωση που θέλουμε να μετρήσουμε τον αριθμό των καταχωρήσεων που ταιριάζουν στην αναζήτηση μας, χρησιμοποιούμε την παράμετρο «-c».

locate -c [dog]* 

4. Αγνοείστε τα case sensitive outputs

Εξ ορισμού το locate όπως και οτιδήποτε στο Linux επεξεργάζεται τα αιτήματα με τρόπο case sensitive, που σημαίνει ότι το TEXT.TXT είναι διαφορετικό αποτέλεσμα από το text.txt .

Για να αγνοήσει το locate τα case sensitive αποτελέσματα χρησιμοποιούμε την παράμετρο «-i».

$ locate -i *text.txt*
/home/becoming_i/TEXT.txt
/home/becoming_i/text.txt

5. Ανανεώστε την βάση της locate (mlocate)

Η locate βασίζεται σε μια βάση δεδομένων που ονομάζεται η mlocate. Αυτή η βάση πρέπει να αναβαθμίζεται τακτικά προκειμένου η εντολή να δουλεύει επαρκώς.

Για να αναβαθμίσουμε τη mlocate, χρησιμοποιούμε ένα utility που ονομάζεται updatedb. Για την εκτέλεση του απαιτούνται δικαιώματα υπερχρήστη προκειμένου να δουλέψει σωστά.

sudo updatedb

6. Δείτε αρχεία που υπάρχουν μόνο στο σύστημα σας

Όταν έχετε αναβαθμισμένη τη mlocate, η locate παράγει αποτελέσματα και για τα αρχεία που έχουν σβηστεί από το σύστημα μας.

Για την αποφυγή αποτελεσμάτων των οποίων τα αρχεία δεν υπάρχουν στο σύστημα μας χρησιμοποιούμε τη locate με την παράμετρο «-e». Η locate ψάχνει το σύστημα και επιβεβαιώνει την ύπαρξη του αρχείου ακόμη και αν αυτό είναι παρόν στην mlocate.db

$ locate -i -e *text.txt*
/home/becoming_i/text.txt

7. Χωριστά αποτελέσματα στην ίδια γραμμή

Ο προκαθορισμένος διαχωριστής της locate είναι ο χαρακτήρας της νέας γραμμής «(\\n)». Αν θέλουμε να χρησιμοποιήσουμε έναν άλλο διαχωριστή όπως το ASCII NUL μπορούμε να χρησιμοποιήσουμε την παράμετρο «-0».

$ locate -i -0 *text.txt*
/home/becoming_i/TEXT.txt/home/becoming_i/text.txt

8. Ανασκόπηση της βάσης δεδομένων της locate

Αν δε γνωρίζουμε την κατάσταση της mlocate.db, μπορούμε να δούμε τα στατιστικά της με τη χρήση της παραμέτρου «–statistics»

$ locate --statistics
Database /var/lib/mlocate/mlocate.db:
75494 directories
863736 files
57551803 bytes in file names
22774181 bytes used to store database

9. Καταστολή των error messages του locate

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

Για την αποφυγή τέτοιων μηνυμάτων αρκεί να προσθέσουμε την παράμετρο «-q»

$ locate "*.dat" -q

10. Διαλέξτε ένα διαφορετικό mlocate

Αν οι παράμετροι αναζήτησης αναζητούν αποτελέσματα που δεν υπάρχουν στην προκαθορισμένη βάση δεδομένων mlocate και επιθυμούμε αποτελέσματα από ένα διαφορετικό mlocate.db το οποίο εντοπίζεται κάπου αλλού στο σύστημα μας, μπορούμε να υποδείξουμε το locate να τη χρησιμοποιήσει με την παράμετρο «-d»

$ locate -d <τοποθεσία νέας βάσης> <όνομα αρχείου>

Επίλογος

Η locate μπορεί να μοιάζει σαν αυτές τις εντολές που κάνουν τα πάντα χωρίς πολλά πολλά, αλλά προκειμένου να διατηρήσουν την αποδοτικότητα τους, η mlocate.db πρέπει συνεχώς να τροφοδοτείται με πληροφορίες σε τακτά διαστήματα. Στην αντίθετη περίπτωση το πρόγραμμα χάνει μεγάλο κομμάτι της χρηστικότητας του.

Πηγή

Advertisements

4 thoughts on “10 χρήσιμες πρακτικές της εντολής locate

  1. «αλλά προκειμένου να διατηρήσουν την αποδοτικότητα τους, η mlocate.db πρέπει συνεχώς να τροφοδοτείται με πληροφορίες σε τακτά διαστήματα.» Αυτό συνήθως το φροντίζει ενα cronjob.

  2. Επίσης η εντολή που είναι «χάρμα οφθαλμών» στους νεοεισερχόμενους στον κόσμο του τερματικού είναι η «tree».

    1. Αν αναφέρεσαι στον συντάκτη του άρθρου, αν θυμάμαι καλά τα τελευταία 36 χρόνια δε με φωνάζουν Κωστή 😛

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s