Πώς να χρησιμοποιήσετε την εντολή fd στο Linux

Στο Linux, το fd είναι μια ευκολότερη εναλλακτική στην εντολή find. Έχει απλοποιημένη σύνταξη, χρησιμοποιεί λογικές προεπιλογές και έχει ενσωματωμένη συμπεριφορά κοινής λογικής. Ας το περάσουμε στους ρυθμούς του.

fd έναντι εύρεσης: Ποια είναι η διαφορά;

Το fd εντολή δεν προορίζεται για αντικατάσταση η παραδοσιακή εντολή εύρεσης, η οποία έχει ήταν στο Linux, για πάντα. Αντίθετα, το fd προσπαθεί να ικανοποιήσει την πλειονότητα των κοινών χρήσεων του find με πιο απλό τρόπο—και, συχνά είναι οκτώ ή εννέα φορές πιο γρήγορο από το find. Μπορείτε να δείτε μερικά από τα σημεία αναφοράς του στο έργο Σελίδα αποθετηρίου GitHub.

Το fd έχει έγχρωμη έξοδο, παρόμοια με αυτή ορισμένων λειτουργιών ls. Είναι αναδρομικό, αλλά δεν αναζητά κρυφούς καταλόγους από προεπιλογή. Ξέρει σχετικά με το Git και επίσης θα αγνοήσει αυτόματα τυχόν μοτίβα στο αρχείο σας “.gitignore”.

Το fd δεν έχει διάκριση πεζών-κεφαλαίων από προεπιλογή. Ωστόσο, εάν το μοτίβο αναζήτησής σας περιέχει ένα κεφαλαίο γράμμα, το fd λειτουργεί σε λειτουργία διάκρισης πεζών-κεφαλαίων. Φυσικά, μπορείτε να παρακάμψετε τις προεπιλογές, αλλά, σε πολλές περιπτώσεις, λειτουργούν υπέρ σας.

Εγκατάσταση fd

Από το Ubuntu 19.04 (Disco Dingo,) μπορείτε να εγκαταστήσετε το fd απευθείας καλώντας το επίσημα συντηρημένο πακέτο με το apt-get. Εάν χρησιμοποιείτε μια παλαιότερη έκδοση του Ubuntu, ελέγξτε το οδηγίες εγκατάστασης στη σελίδα του διανομέα Git.

Πληκτρολογήστε τα εξής:

sudo apt-get install fd-find

Στο Ubuntu, η εντολή είναι fdfind για να αποφευχθεί μια σύγκρουση ονόματος με άλλο υπάρχον βοηθητικό πρόγραμμα. Εάν θέλετε να είναι fd, μπορείτε να ορίσετε ένα ψευδώνυμο:

alias fd=fdfind

Για να κάνετε το ψευδώνυμο μόνιμο ώστε να παραμένει διαθέσιμο μετά τις επανεκκινήσεις, βάλτε το στο αρχείο “.bashrc” ή “.bash_aliases”.

Για να εγκαταστήσετε το fd στο Fedora, πληκτρολογήστε αυτήν την εντολή:

sudo dfn install fd-find

Στο Manjaro, πληκτρολογήστε τα εξής:

sudo pacman -Syu fd

fd εναντίον fdfind

Για να αποφευχθεί η σύγχυση, αφήσαμε την εντολή με το προεπιλεγμένο της όνομα, fdfind, στον δοκιμαστικό μας υπολογιστή Ubuntu. Το fd και το fdfind είναι ακριβώς η ίδια εντολή, όπως θα δείτε στο παρακάτω παράδειγμα (αν ζητήσετε από το fdfind να εμφανίσει την έκδοσή του, αυτοαποκαλείται “fd”):

fdfind --version

Θα ονομάσουμε την εντολή “fed”, αλλά στα παραδείγματα, θα χρησιμοποιήσουμε το Ubuntu “fdfind”. Σε άλλες διανομές Linux, μπορείτε να πληκτρολογήσετε “fd” αντί για “fdfind” για να αποθηκεύσετε μερικά πλήκτρα.

  Πώς να ρυθμίσετε ένα κλειδί SSH στο Linux

Απλές αναζητήσεις με fd

Εάν χρησιμοποιείτε το fd χωρίς επιλογές γραμμής εντολών, συμπεριφέρεται λίγο σαν ls, εκτός από το ότι παραθέτει αρχεία σε υποκαταλόγους από προεπιλογή.

Πληκτρολογήστε τα εξής:

fdfind

Η έξοδος εμφανίζεται με διαφορετικά χρώματα για διαφορετικούς τύπους αρχείων και καταλόγους.

Για να δείτε αρχεία συγκεκριμένου τύπου, χρησιμοποιήστε την επιλογή -e (επέκταση). Σημειώστε ότι δεν χρειάζεται να προηγείται της επέκτασης με τελεία (.), ούτε έχει διάκριση πεζών-κεφαλαίων.

Για παράδειγμα, μπορείτε να πληκτρολογήσετε τα εξής:

fdfind -e png

Τώρα, τα μόνα αρχεία που αναφέρονται είναι αρχεία εικόνας PNG.

Για να αναζητήσετε ένα μεμονωμένο αρχείο, πληκτρολογήστε το όνομά του στη γραμμή εντολών, όπως:

fdfind index.page

Το αρχείο βρίσκεται και τυχαίνει να βρίσκεται σε έναν υποκατάλογο. Δεν χρειαζόταν να πούμε στο fd να ψάξει αναδρομικά.

Για να ξεκινήσει η αναζήτηση σε έναν συγκεκριμένο κατάλογο, συμπεριλάβετε μια διαδρομή αρχείου στη γραμμή εντολών. Η ακόλουθη εντολή θα ξεκινήσει μια αναζήτηση στον κατάλογο “/etc” και θα αναζητήσει αρχεία που περιλαμβάνουν “passwd” στο όνομα του αρχείου:

fdfind passwd /etc

Εδώ, αναζητούμε όλα τα αρχεία πηγαίου κώδικα C που περιέχουν “coord” στο όνομα του αρχείου:

fdfind -e c coord

Βρέθηκαν δύο αρχεία που ταιριάζουν.

fd και Git

Το Git είναι εξαιρετικά δημοφιλές σύστημα ελέγχου έκδοσης πηγαίου κώδικα. Εάν χρησιμοποιείτε το Git στον υπολογιστή σας, πιθανότατα χρησιμοποιείτε αρχεία “.gitignore” για να πείτε στο Git με ποια αρχεία πρέπει να ασχολείται και ποια μπορεί να αγνοήσει. Από προεπιλογή, το fd σέβεται τις ρυθμίσεις στα αρχεία σας “.gitignore”.

  Τα 7 καλύτερα εργαλεία κάμερας Web για χρήστες Linux

Σε αυτόν τον κατάλογο, έχουμε ένα αποθετήριο Git και ένα αρχείο “.gitignore”. Πληκτρολογούμε τα εξής:

ls -adl .git*

Ας ζητήσουμε από το fd να αναφέρει τυχόν αρχεία που περιέχουν “coord” στο όνομα του αρχείου. Στη συνέχεια, θα επαναλάβουμε την αναζήτηση και θα χρησιμοποιήσουμε την επιλογή -I (no ignore). Αυτό λέει στο fd να αγνοήσει τις ρυθμίσεις στο αρχείο “.gitignore” και να αναφέρει κάθε αντίστοιχο αρχείο.

Για να τα κάνουμε όλα αυτά, πληκτρολογούμε τα εξής:

fdfind coord
fdfind coord -I

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

Τα αρχεία αντικειμένων συνήθως αγνοούνται από προγράμματα ελέγχου έκδοσης πηγαίου κώδικα. Αναγεννώνται κάθε φορά που μεταγλωττίζετε το πρόγραμμά σας, επομένως δεν χρειάζεται να αποθηκεύετε αντίγραφά τους. Υπάρχει μια καταχώρηση στο αρχείο “.gitignore” που δίνει εντολή στο Git να αγνοήσει τα αρχεία αντικειμένων και, από προεπιλογή, το fd τα αγνοεί επίσης.

Η επιλογή -I (no ignore) αναγκάζει το fd να επιστρέψει όλα όσα βρίσκει, αντί να καθοδηγείται από το αρχείο “.gitginore”.

Τύποι αρχείων και ευαισθησία πεζών-κεφαλαίων

Μπορείτε να ζητήσετε από το fd να αναζητήσει καταλόγους, αρχεία (συμπεριλαμβανομένων εκείνων που είναι εκτελέσιμα και κενά) και συμβολικούς συνδέσμους. Μπορείτε να το κάνετε χρησιμοποιώντας την επιλογή -t (τύπος), ακολουθούμενη από ένα από τα παρακάτω γράμματα:

στ: Αρχείο.
δ: Κατάλογος.
λ: Συμβολικός σύνδεσμος.
x: Εκτελέσιμο αρχείο.
ε: Κενό αρχείο.

Το παρακάτω αναζητά έναν κατάλογο που ονομάζεται εικόνες:

fdfind -td images

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

Ας δούμε πώς λειτουργεί η ευαισθησία πεζών-κεφαλαίων με τα μοτίβα αναζήτησης. Πληκτρολογούμε τα εξής για να αναζητήσουμε πρώτα αρχεία που περιέχουν “geo” στα ονόματα των αρχείων τους και στη συνέχεια για αυτά που περιέχουν “Geo” στα ονόματα των αρχείων τους:

fdfind -tf geo
fdfind -tf Geo

Στην πρώτη εντολή, χρησιμοποιήσαμε ένα μοτίβο αναζήτησης με πεζά γράμματα, το οποίο έκανε το fd να λειτουργεί με τρόπο χωρίς διάκριση πεζών-κεφαλαίων. Αυτό σημαίνει ότι τόσο το “Geo” και το “geo” είναι έγκυρες αντιστοιχίσεις.

  Πώς να παίξετε τη σειρά παιχνιδιών Marathon της Bungie στο Linux

Η δεύτερη εντολή μας περιείχε έναν κεφαλαίο χαρακτήρα, ο οποίος έκανε το fd να λειτουργεί με διάκριση πεζών-κεφαλαίων. Αυτό σημαίνει ότι μόνο το “Geo” είναι έγκυρη αντιστοίχιση.

Εκτέλεση εντολών

Η εντολή fd σάς επιτρέπει να εκκινήσετε μια άλλη εντολή και να την εκτελέσετε σε καθένα από τα αρχεία που βρέθηκαν.

Ας πούμε ότι γνωρίζουμε ότι υπάρχει α Αρχείο zip κάπου στο δέντρο καταλόγου πηγαίου κώδικα. Μπορούμε να το αναζητήσουμε χρησιμοποιώντας την ακόλουθη εντολή, η οποία αναζητά αρχεία με την επέκταση ZIP:

fdfinf -e zip

Με την επιλογή -x (exec), μπορείτε να περάσετε κάθε αρχείο που βρέθηκε σε άλλη εντολή για επεξεργασία από αυτήν. Για παράδειγμα, μπορούμε να πληκτρολογήσουμε τα παρακάτω για να καλέσουμε το βοηθητικό πρόγραμμα αποσυμπίεσης για να αποσυμπιέσουμε το αρχείο ZIP (το “{}” είναι ένα σύμβολο κράτησης θέσης που αντιπροσωπεύει το αρχείο που βρέθηκε):

fdfind -e zip -x unzip {}

Αυτό θα αποσυμπιέσει το αρχείο στον τρέχοντα κατάλογο εργασίας. Εάν θέλουμε να αποσυμπιεστεί στον κατάλογο που περιέχει το αρχείο ZIP, μπορούμε να χρησιμοποιήσουμε ένα από τα ακόλουθα σύμβολα κράτησης θέσης:

{}: Η πλήρης διαδρομή αρχείου και το όνομα του αρχείου που βρέθηκε.
{/}: Το όνομα αρχείου του αρχείου που βρέθηκε.
{//}: Ο κατάλογος που περιέχει το αρχείο που βρέθηκε.
{/.}: Το όνομα αρχείου του αρχείου που βρέθηκε, χωρίς την επέκταση.

Για να βρεθεί και να αποσυμπιεστεί το αρχείο ZIP στον κατάλογο που το περιέχει, μπορούμε να χρησιμοποιήσουμε την επιλογή unzip -d (κατάλογος) και να περάσουμε στο σύμβολο κράτησης θέσης γονικού καταλόγου ({//}):

fdfind -e zip -x unzip {} -d {//}

Στη συνέχεια, το αρχείο ZIP εντοπίζεται και αποσυμπιέζεται στον γονικό κατάλογο.

Το Go-to Find σας;

Επειδή καλύπτει τις πιο συνηθισμένες χρήσεις με τόση απλότητα, το fd μπορεί εύκολα να γίνει η εντολή «εύρεσης» που θέλετε. Όποτε χρειάζεστε πιο προηγμένες λειτουργίες του, μπορείτε πάντα να επιστρέψετε σε αυτόν τον έμπειρο βετεράνο, βρείτε.