Sådan bruger du fd-kommandoen på Linux

På Linux er fd et lettere alternativ til find-kommandoen. Det har en forenklet syntaks, bruger fornuftige standardindstillinger og har indbygget sund fornuft adfærd. Lad os tage det igennem dens trin.

fd versus find: Hvad er forskellen?

Den fd kommandoen er ikke beregnet til at erstatte den traditionelle find-kommando, som har været på Linux, ja, for evigt. I stedet forsøger fd at tilfredsstille de fleste almindelige anvendelser af find på en mere ligetil måde – og det er ofte otte eller ni gange hurtigere end find. Du kan se nogle af dets benchmarks på projektets GitHub repository side.

fd har et farvelagt output, der ligner det for nogle ls-tilstande. Det er rekursivt, men søger ikke i skjulte mapper som standard. Det ved om Git og vil også automatisk ignorere alle mønstre i din “.gitignore” fil.

fd er som standard ufølsom mellem store og små bogstaver. Men hvis dit søgemønster indeholder et stort bogstav, fungerer fd i en tilstand, der skelner mellem store og små bogstaver. Selvfølgelig kan du tilsidesætte standardindstillingerne, men i mange tilfælde fungerer de til din fordel.

Installerer fd

Siden Ubuntu 19.04 (Disco Dingo,) kan du installere fd direkte ved at kalde den officielt vedligeholdte pakke med apt-get. Hvis du kører en ældre version af Ubuntu, skal du tjekke installationsinstruktioner på Git hub-siden.

Indtast følgende:

sudo apt-get install fd-find

I Ubuntu er kommandoen fdfind for at undgå et navnesammenstød med et andet eksisterende værktøj. Hvis du vil have det til at være fd, kan du oprette et alias:

alias fd=fdfind

For at gøre aliaset vedvarende, så det forbliver tilgængeligt efter genstart, læg det i din “.bashrc”- eller “.bash_aliases”-fil.

  Sådan bruges Pandoc til at konvertere filer på Linux-kommandolinjen

For at installere fd på Fedora, skriv denne kommando:

sudo dfn install fd-find

På Manjaro skal du skrive følgende:

sudo pacman -Syu fd

fd versus fdfind

For at undgå forvirring har vi efterladt kommandoen med dens standardnavn, fdfind, på vores Ubuntu test-pc. fd og fdfind er nøjagtig den samme kommando, som du vil se i følgende eksempel (hvis du beder fdfind om at vise sin version, kalder den sig selv “fd”):

fdfind --version

Vi kalder kommandoen “fed”, men i eksemplerne bruger vi Ubuntu “fdfind.” På andre Linux-distributioner kan du skrive “fd” i stedet for “fdfind” for at gemme et par tastetryk.

Simple søgninger med fd

Hvis du bruger fd uden kommandolinjeindstillinger, opfører det sig lidt som ls, bortset fra at det som standard viser filer i undermapper.

Indtast følgende:

fdfind

Outputtet vises i forskellige farver for forskellige filtyper og mapper.

For at se filer af en bestemt type, brug -e (udvidelse) mulighed. Bemærk, at du ikke skal forud for forlængelsen med et punktum (.), og der skelnes heller ikke mellem store og små bogstaver.

Du kan f.eks. skrive følgende:

fdfind -e png

Nu er de eneste filer på listen PNG-billedfiler.

For at søge efter en enkelt fil, skriv dens navn på kommandolinjen, sådan:

fdfind index.page

Filen er fundet og er tilfældigvis i en undermappe. Vi behøvede ikke at bede fd om at søge rekursivt.

For at få søgningen til at starte i en bestemt mappe, skal du inkludere en filsti på kommandolinjen. Følgende kommando starter en søgning i mappen “/etc” og leder efter filer, der inkluderer “passwd” i filnavnet:

fdfind passwd /etc

Her søger vi efter alle C-kildekodefiler, der indeholder “coord” i filnavnet:

fdfind -e c coord

To matchende filer blev fundet.

fd og Git

Git er en ekstremt populær kildekodeversionskontrolsystem. Hvis du bruger Git på din computer, bruger du sandsynligvis “.gitignore”-filer til at fortælle Git, hvilke filer den skal beskæftige sig med, og hvilke den kan ignorere. Som standard respekterer fd indstillingerne i dine “.gitignore”-filer.

  Sådan kører du Linux på Android med Linux-implementering

I denne mappe har vi et Git-lager og “.gitignore”-fil. Vi skriver følgende:

ls -adl .git*

Lad os bede fd om at liste alle filer, der indeholder “coord” i filnavnet. Vi gentager derefter søgningen og bruger muligheden -I (ingen ignorering). Dette fortæller fd at ignorere indstillingerne i “.gitignore” filen og rapportere hver matchende fil.

For at gøre alt dette, skriver vi følgende:

fdfind coord
fdfind coord -I

De to ekstra filer i det andet sæt resultater er objektfiler. Disse oprettes, når et filprogram kompileres. De bruges derefter af linkeren til at skabe den endelige eksekverbare version af programmet.

Objektfiler ignoreres typisk af kildekodeversionskontrolprogrammer. De regenereres, hver gang du kompilerer dit program, så du ikke behøver at gemme kopier af dem. Der er en post i “.gitignore”-filen, der instruerer Git til at ignorere objektfiler, og som standard ignorerer fd dem også.

Valgmuligheden -I (ingen ignorer) tvinger fd til at returnere alt, hvad den finder, i stedet for at blive guidet af “.gitginore”-filen.

Filtyper og versalfølsomhed

Du kan bede fd om at lede efter mapper, filer (inklusive dem, der er eksekverbare og tomme) og symbolske links. Du kan gøre det ved at bruge indstillingen -t (type) efterfulgt af et af bogstaverne nedenfor:

f: Fil.
d: Vejviser.
l: Symbolsk link.
x: Eksekverbar fil.
e: Tom fil.

Følgende leder efter en mappe kaldet billeder:

fdfind -td images

Et match er fundet, en undermappe lavere end den nuværende.

Lad os se, hvordan følsomhed over for store og små bogstaver fungerer sammen med søgemønstre. Vi skriver følgende for først at søge efter filer, der indeholder “geo” i deres filnavne, og derefter efter dem, der indeholder “Geo” i deres filnavne:

fdfind -tf geo
fdfind -tf Geo

I den første kommando brugte vi et søgemønster med små bogstaver, som fik fd til at fungere på en måde, hvorpå der ikke er store bogstaver. Dette betyder, at både “Geo” og “geo” er gyldige match.

  Sådan sikkerhedskopieres LXQt-skrivebordsindstillingerne på Linux

Vores anden kommando indeholdt et stort tegn, som fik fd til at fungere på en måde, hvorpå der skelnes mellem store og små bogstaver. Dette betyder, at kun “Geo” er et gyldigt match.

Kommandoudførelse

Kommandoen fd giver dig mulighed for at starte en anden kommando og udføre den på hver af de fundne filer.

Lad os sige, at vi ved, at der er en Zip-fil et sted i vores kildekodemappetræ. Vi kan lede efter det ved at bruge følgende kommando, som søger efter filer med ZIP-udvidelsen:

fdfinf -e zip

Med indstillingen -x (exec) kan du videregive hver fundne fil til en anden kommando, der skal behandles af den. For eksempel kan vi skrive følgende for at kalde unzip værktøj for at udpakke vores ZIP-fil (“{}” er en pladsholder, der repræsenterer den fundne fil):

fdfind -e zip -x unzip {}

Dette vil udpakke filen i den aktuelle arbejdsmappe. Hvis vi ønsker, at den skal udpakkes i mappen, der indeholder ZIP-filen, kan vi bruge en af ​​følgende pladsholdere:

{}: Den fulde filsti og navn på den fundne fil.
{/}: Filnavnet på den fundne fil.
{//}: Mappen, der indeholder den fundne fil.
{/.}: Filnavnet på den fundne fil uden filtypenavnet.

For at vores ZIP-fil kan findes og udpakkes i den mappe, der indeholder den, kan vi bruge unzip -d (mappe) mulighed og sende pladsholderen til den overordnede mappe ({//}):

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

ZIP-filen lokaliseres derefter, og den udpakkes i dens overordnede mappe.

Din Go-to Find?

Fordi det dækker de mest almindelige anvendelser med en sådan enkelhed, kan fd nemt blive din gå-til “find”-kommando. Når du har brug for dets mere avancerede funktioner, kan du altid vende tilbage til den erfarne veteran, find.