Cum să utilizați comanda fd pe Linux
Publicat: 2022-01-29 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.
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
Î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.
Pentru a vedea fișierele de un anumit tip, utilizați opțiunea
(extensie). Rețineți că nu trebuie să precedați extensia cu un punct (.) și nici nu face distincție între majuscule și minuscule.-e
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”.
Î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
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
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
.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · sus · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · care · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști