Cum să utilizați comanda fd pe Linux

Publicat: 2022-01-29
O fereastră de terminal pe un computer Linux cu un desktop în stil Ubuntu.
Fatmawati Achmad Zaenuri/Shutterstock

Pe Linux, fd este o alternativă mai ușoară la comanda find . Are o sintaxă simplificată, folosește valori implicite sensibile și are încorporat un comportament de bun simț. Să o luăm prin pas.

fd versus find: Care este diferența?

Comanda fd nu este menită să înlocuiască comanda tradițională find , care a fost pe Linux, ei bine, pentru totdeauna. În schimb, fd încearcă să satisfacă majoritatea utilizărilor obișnuite ale find într-un mod mai simplu și, adesea, este de opt sau nouă ori mai rapid decât find . Puteți vedea unele dintre reperele sale pe pagina de depozit GitHub a proiectului.

10 comenzi de bază Linux pentru începători
LEGATE 10 comenzi de bază Linux pentru începători

fd are o ieșire colorată, similară cu cea a unor moduri ls . Este recursiv, dar nu caută directoare ascunse în mod implicit. Știe despre Git și, de asemenea, va ignora automat orice tipare din fișierul tău „.gitignore”.

fd nu ține seama de majuscule și minuscule în mod implicit. Cu toate acestea, dacă modelul dvs. de căutare conține o literă mare, fd funcționează într-un mod sensibil la majuscule. Desigur, puteți trece peste valorile implicite, dar, în multe cazuri, acestea funcționează în favoarea dvs.

LEGATE: Cum să utilizați toate comenzile de căutare Linux

Instalarea fd

De la Ubuntu 19.04 (Disco Dingo), puteți instala fd direct apelând pachetul întreținut oficial cu apt-get . Dacă rulați o versiune mai veche de Ubuntu, verificați instrucțiunile de instalare de pe pagina hub-ului Git.

Introduceți următoarele:

 sudo apt-get install fd-find 

Publicitate

În Ubuntu, comanda este fdfind pentru a evita o ciocnire a numelui cu un alt utilitar existent. Dacă doriți să fie fd , puteți configura un alias:

 alias fd=fdfind 

Pentru ca aliasul să fie persistent, astfel încât să rămână disponibil după repornire, puneți-l în fișierul „.bashrc” sau „.bash_aliases”.

LEGATE: Cum se creează aliasuri și funcții Shell pe Linux

Pentru a instala fd pe Fedora, tastați această comandă:

 sudo dfn install fd-find 

Pe Manjaro, tastați următoarele:

 sudo pacman -Syu fd 

fd versus fdfind

Pentru a evita confuzia, am lăsat comanda cu numele implicit, fdfind , pe computerul nostru de testare Ubuntu. fd și fdfind sunt exact aceeași comandă, așa cum veți vedea în exemplul următor (dacă cereți fdfind să-și arate versiunea, se numește „fd”):

 fdfind --versiune 

Vom numi comanda „fed”, dar în exemple, vom folosi Ubuntu „fdfind”. Pe alte distribuții Linux, puteți tasta „fd” în loc de „fdfind” pentru a salva câteva apăsări de taste.

Căutări simple cu fd

Dacă utilizați fd fără opțiuni de linie de comandă, se comportă puțin ca ls , cu excepția faptului că listează fișierele în subdirectoare în mod implicit.

Introduceți următoarele:

 fdfind 

Ieșirea apare în culori diferite pentru diferite tipuri de fișiere și directoare.

Publicitate

Pentru a vedea fișierele de un anumit tip, utilizați opțiunea -e (extensie). Rețineți că nu trebuie să precedați extensia cu un punct (.) și nici nu face distincție între majuscule și minuscule.

De exemplu, puteți introduce următoarele:

 fdfind -e png 

Acum, singurele fișiere listate sunt fișiere imagine PNG.

Pentru a căuta un singur fișier, introduceți numele acestuia pe linia de comandă, astfel:

 fdfind index.page 

Fișierul este găsit și se întâmplă să fie într-un subdirector. Nu a trebuit să îi spunem lui fd să caute recursiv.

Pentru a începe căutarea într-un anumit director, includeți o cale de fișier pe linia de comandă. Următoarea comandă va începe o căutare în directorul „/etc” și va căuta fișiere care includ „passwd” în numele fișierului:

 fdfind passwd /etc 

Aici, căutăm toate fișierele de cod sursă C care conțin „coord” în numele fișierului:

 fdfind -ec coord 

Au fost găsite două fișiere care se potrivesc.

fd și Git

Git este un sistem de control al versiunilor codului sursă extrem de popular. Dacă utilizați Git pe computer, probabil că utilizați fișiere „.gitignore” pentru a-i spune lui Git de ce fișiere ar trebui să se preocupe și pe care le poate ignora. În mod implicit, fd respectă setările din fișierele dvs. „.gitignore”.

Publicitate

În acest director, avem un depozit Git și un fișier „.gitignore”. Introducem următoarele:

 ls -adl .git* 

Să cerem fd să listeze orice fișiere care conțin „coord” în numele fișierului. Vom repeta apoi căutarea și vom folosi opțiunea -I (fără ignorare). Acest lucru îi spune lui fd să ignore setările din fișierul „.gitignore” și să raporteze fiecare fișier care se potrivește.

Pentru a face toate acestea, introducem următoarele:

 fdfind coord
 fdfind coord -I 

Cele două fișiere suplimentare din al doilea set de rezultate sunt fișiere obiect. Acestea sunt create atunci când este compilat un program de fișiere. Acestea sunt apoi folosite de linker pentru a crea versiunea executabilă finală a programului.

Fișierele obiect sunt de obicei ignorate de programele de control al versiunii codului sursă. Acestea sunt regenerate de fiecare dată când vă compilați programul, astfel încât nu trebuie să stocați copii ale acestora. Există o intrare în fișierul „.gitignore” care îi indică lui Git să ignore fișierele obiect și, implicit, fd le ignoră și ele.

Opțiunea -I (fără ignorare) forțează fd să returneze tot ce găsește, în loc să fie ghidat de fișierul „.gitginore”.

Tipuri de fișiere și sensibilitate la minuscule

Puteți cere fd să caute directoare, fișiere (inclusiv cele care sunt executabile și goale) și legături simbolice. Puteți face acest lucru folosind opțiunea -t (tip), urmată de una dintre literele de mai jos:

  • f : Fișier.
  • d : Director.
  • l : Legătură simbolică.
  • x : Fișier executabil.
  • e : Fișier gol.

Următorul caută un director numit imagini:

 imagini fdfind -td 

Publicitate

Este găsită o potrivire, cu un subdirector mai jos decât cel actual.

Să vedem cum funcționează diferența de minuscule și minuscule cu modelele de căutare. Introducem următoarele pentru a căuta mai întâi fișierele care conțin „geo” în numele fișierelor, apoi pe cele care conțin „Geo” în numele fișierelor:

 fdfind -tf geo
 fdfind -tf Geo 

În prima comandă, am folosit un model de căutare cu litere mici, care a făcut ca fd să funcționeze într-un mod care nu ține seama de majuscule. Aceasta înseamnă că atât „Geo” cât și „geo” sunt potriviri valide.

A doua noastră comandă conținea un caracter majuscule, ceea ce a determinat fd să funcționeze într-o manieră sensibilă la majuscule. Aceasta înseamnă că doar „Geo” este o potrivire validă.

Executarea comenzii

Comanda fd vă permite să lansați o altă comandă și să o executați pe fiecare dintre fișierele găsite.

Să presupunem că știm că există un fișier Zip undeva în arborele directorului nostru de cod sursă. Îl putem căuta folosind următoarea comandă, care caută fișiere cu extensia ZIP:

 fdfinf -e zip 

Publicitate

Cu opțiunea -x (exec), puteți trece fiecare fișier găsit unei alte comenzi pentru a fi procesat de acesta. De exemplu, putem tasta următoarele pentru a apela utilitarul de dezarhivare pentru a dezarhiva fișierul nostru ZIP („{}” este un substituent care reprezintă fișierul găsit):

 fdfind -e zip -x dezarhivare {}

Aceasta va dezarhiva fișierul în directorul de lucru curent. Dacă dorim să fie dezarhivat în directorul care conține fișierul ZIP, putem folosi unul dintre următorii substituenți:

  • {} : calea completă a fișierului și numele fișierului găsit.
  • {/} : numele fișierului găsit.
  • {//} : directorul care conține fișierul găsit.
  • {/.} : numele fișierului găsit, fără extensia.

Pentru ca fișierul nostru ZIP să fie găsit și dezarhivat în directorul care îl conține, putem folosi opțiunea unzip -d (director) și putem introduce substituentul directorului părinte ( {//} ):

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

Fișierul ZIP este apoi localizat și dezarhivat în directorul său părinte.

Găsiți-vă?

Deoarece acoperă cele mai obișnuite utilizări cu o asemenea simplitate, fd poate deveni cu ușurință comanda ta „găsește”. Ori de câte ori aveți nevoie de funcțiile sale mai avansate, vă puteți întoarce oricând la acel veteran experimentat, find .

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști