Find-kommandoen hjelper oss å finne en bestemt fil i en katalog. Den brukes til å finne listen over filer for de forskjellige forholdene som tillatelse, brukereierskap, endring, dato/klokkeslett, størrelse og mer.
I Unix-lignende og andre operativsystemer er finn-kommandoen et kommandolinjeverktøy som finner filer på grunnlag av noen få brukerspesifiserte formater og enten skriver ut alle samsvarende objekts banenavn eller, hvis andre handlinger blir bedt om, implementerer handlingen på alle samsvarende objekter.
Den starter et søk fra et ønsket sted å starte, og deretter krysser den rekursivt katalogene (nodene) til en hierarkisk struktur (vanligvis et tre). Finn-kommandoen kan søke og krysse fra forskjellige filpartisjonssystemer som tilhører en enkelt eller flere lagringsenheter under startkatalogen.
Søkeformatet inneholder et mønster for matching mot filnavnet eller tidsintervallet for samsvar mot endringstiden eller filtilgangstiden. Finn-kommandoen gir som standard en liste over hver fil under gjeldende arbeidskatalog. Imidlertid kan brukere begrense søket til et ønsket maksimalt nivå på startkatalogen.
De tilknyttede lokaliseringsprogrammene bruker en indeksert fildatabase hentet fra fine-kommandoen for å gi en raskere teknikk for å søke i hele filsystemet etter navn.
Finn-verktøyet kommer som standard med de fleste Linux distros , så vi trenger ikke å installere noen ekstra pakke. Det er en av de mest essensielle og brukte kommandoene til Linux system.
find
De to alternativene bestemmer hvordan funn skal vurdere symbolske lenker. Standardnaturen er aldri å forfølge symbolske lenker. Flagget, dvs. -L , vil lede finne å forfølge symbolske lenker. Flagget, dvs. -H , vil bare forfølge symbolske lenker mens du fortsetter med kommandolinjeargumentene. Flaggene er nevnt i POSIX-standarden for find-kommandoen. En grunnleggende utvidelse er et flagg, dvs. -P , for å eksplisitt deaktivere den følgende symbolkoblingen.
Minst en sti må forutse uttrykket. Finn-kommandoen kan internt tolke jokertegn, og kommandoer må siteres nøye for å håndtere shell-globing.
Uttrykkskomponenter er isolert av kommandolinjeargumentgrensen, vanligvis angitt som mellomrom innenfor skallsyntaksen. De betraktes fra venstre side til høyre side. De kan inkludere logiske komponenter som OR og AND samt predikater (handlinger og filtre). GNU-funnet inneholder flere andre funksjoner som ikke er nevnt av POSIX.
Følgende symboler brukes til å spesifisere katalogen:
(.) : For gjeldende katalognavn
(/) : For rotkatalogen
Kort historie om finnekommandoen
Finn-kommandoen skjedde i versjon 5 Unix som et element i Programmerers arbeidsbenk prosjekt og ble spesifisert av Dick Haight med cpio, som ble utviklet for å kunne brukes sammen.
Opprinnelig ble GNU-implementeringen av find-kommandoen spesifisert av Eric Decker . Senere ble den utviklet av David MacKenzie, Tim Wood , og Jay Plett . Finn-kommandoen har også blitt portert til IBM i OS.
kruskal algoritme
Predikater
Mye brukte primærvalg er:
Finn standarder for å implementere -print i tilfelle betingelsene er sanne hvis uttrykket ikke bruker noen av -ok, -exec, -print eller -print0.
Operatører
Operatører forbedrer finn-kommandouttrykkene. De er nevnt i rekkefølge etter synkende prioritet:
- expr1 expr2 (eller expr1 -a expr2 : OG. expr2 blir ikke evaluert hvis expr1 er usann.
- expr1 -o expr2 : ELLER. expr2 blir ikke evaluert hvis expr1 er sant.
Eksempler på finn-kommandoen
La oss se følgende eksempler på find-kommandoen:
- Finn filer etter navn
- Finn filer etter type
- Finn nyere filer
- Finn og slett en fil
- Finn en katalog
- Finn filer etter endringstid
- Finn filer med tillatelse
- Finn og erstatt filer
- Finn tekst i flere filer
Finn filer etter navn
Vi kan søke i alle filene som slutter med filtypen .txt. For å gjøre det, kjør kommandoen nedenfor:
find . -name '*.txt'
Kommandoen ovenfor vil vise alle tekstfilene fra gjeldende arbeidskatalog. Tenk på utgangen nedenfor:
Fra utdataene ovenfor er alle filene med filtypen '.txt' oppført med find-kommandoen.
Finne filer etter type
Parameteren '-type' brukes til å spesifisere filtypen.
amplitudemodulasjon
Noen av filtypene er som følger:
- f: vanlig fil
- d: katalog
- l: symbolske lenker
- c: tegnenheter
- b: blokkere enheter
Tenk på kommandoen nedenfor:
find . -type d -name '*.bak'
Kommandoen ovenfor vil vise alle katalogene som har utvidelsen '.bak'. Tenk på utgangen nedenfor:
Fra utgangen ovenfor, kommandoen 'finn . -type d -navn '*.bak' viser alle katalogene som slutter med '.bak'.
Finn nyere filer
Parameteren '-newer' hjelper deg med å søke etter filene som er nyere enn den nevnte filen. Tenk på kommandoen nedenfor:
find . -newer msg.txt
Kommandoen ovenfor vil vise alle filene som er nyere enn 'msg.txt' fra gjeldende arbeidskatalog. Tenk på utgangen nedenfor:
Fra utdataene ovenfor er alle filene som vises nyere enn 'msg.txt'-filen.
Finn og slett en fil
Alternativet '-delete' brukes til å slette en bestemt fil. Vi må være veldig forsiktige når vi bruker denne kommandoen fordi det ikke er noe angrealternativ hvis den er utført en gang. Tenk på kommandoen nedenfor:
find . -name Demo.txt -delete
Kommandoen ovenfor vil slette filen 'Demo.txt' fra gjeldende arbeidskatalog. Tenk på utgangen nedenfor:
Finn en katalog
Alternativet 'type -d' brukes til å finne en katalog. Tenk på kommandoen nedenfor:
find . type -depth -name Newdirectory
Kommandoen ovenfor vil finne 'Newdirectory'-plasseringen. Tenk på utgangen nedenfor:
Finn filer etter endringstid
Alternativet '-mtime', etterfulgt av antall dager, brukes til å finne filene ved modifikasjon. Antall dager kan være positivt eller negativt. Den negative verdien vil bli brukt for mindre enn -1 brukes for den siste dagen, og på samme måte vil +1 finne filen for mer enn én dag siden. Tenk på kommandoen nedenfor:
find ./Newdirectory -mtime -1
Kommandoen ovenfor vil finne filene som er endret i løpet av den siste dagen. Tenk på utgangen nedenfor:
betinget operatør i java
Finn filer med tillatelse
Alternativet '-perm' brukes til å finne filer med tillatelse. Utfør finn-kommandoen med '-perm'-alternativet og send den nødvendige verdien. Tenk på kommandoen nedenfor:
find ./ -perm 777
Kommandoen ovenfor vil vise filene fra den angitte katalogen som alle kan lese, skrive og kjøre.
Finn og erstatt filer
For å finne og erstatte filer, må vi kombinere find-kommandoen med sed-kommandoen. For å operere på filer, bruk '-exec'-alternativet med find-kommandoen. Tenk på kommandoen nedenfor:
find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ;
fra kommandoen ovenfor, vil den angitte forekomsten erstattes. Tenk på utgangen nedenfor:
Finn tekst i flere filer
Vi kan lage en annen kombinasjon av find-kommandoen med grep-kommandoen for å finne teksten fra de ulike filene. Tenk på kommandoen nedenfor:
find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ;
Kommandoen ovenfor vil finne linjene som inneholder teksten 'demo' fra alle tekstfilene i katalogen 'Newdirectory'. Tenk på utgangen nedenfor:
Fra utgangen ovenfor kan vi se linjene med teksten 'demo' har blitt vist.
Søk i hver katalog
$ find / -name file1 -type f -print
Kommandoen ovenfor finner alle kataloger for en vanlig fil med tittelen fil1 og skriver den ut på skjermen. Generelt er det ikke en god idé å søke etter filer på denne måten. Det kan ta en god del tid. Så det er best å nevne katalogen. Noen få operativsystemer kan montere filsystemer (dynamisk) som ikke er gunstige for find-kommandoen. Mer kompliserte filnavn som inneholder tegn som er unike for skallet, kan kreve å lukkes i enkle anførselstegn.