Cum să utilizați comanda fd pe Linux

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ă-l luăm prin pași.

fd versus find: Care este diferența?

Fd comanda nu este menită să înlocuiască comanda tradițională find, care are 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 câteva dintre reperele sale pe proiecte Pagina de depozit GitHub.

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 dvs. „.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.

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țiuni de instalare pe pagina hub-ului Git.

Introduceți următoarele:

sudo apt-get install fd-find

Î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”.

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 --version

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.

  Cum să joci Total War: ROME II pe Linux

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.

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 -e c coord

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

fd și Git

Git este extrem de popular sistem de control al versiunilor codului sursă. Dacă utilizați Git pe computer, probabil că utilizați fișiere „.gitignore” pentru a-i spune lui Git 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”.

Î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.

  Cum să editați fișierele text grafic pe Linux cu gedit

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 un program de fișiere este compilat. 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:

fdfind -td images

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.

  Cum să utilizați comanda cat în Linux (cu exemple)

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ă o Fișier Zip undeva în arborele nostru director de cod sursă. Îl putem căuta folosind următoarea comandă, care caută fișiere cu extensia ZIP:

fdfinf -e zip

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 unzip {}

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 dezarhivare -d (director) și introducem substituentul directorului părinte ({//}):

fdfind -e zip -x unzip {} -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, găsiți.