40 Beste Eksemplene på Finn-kommandoen i Linux

Linux find kommando er et kraftig verktøy som lar systemansvarlige til å finne og behandle filer og kataloger basert på et bredt spekter av søkekriterier. Det kan finne kataloger og filer etter navn, type, eller filtype, størrelse, tillatelser, etc.

i Tillegg til å finne filer og mapper, ved å kombinere find kommando med andre gjør det mulig for deg å ta handling på resultatene., Å legge til -exec alternativet kan sysadmins å kjøre eksterne kommandoer og utføre handlinger som å kopiere, flytte, slette eller endre tillatelser av filer som passer til den angitte kriterier som størrelse, navn, etc.

I denne artikkelen, vi vil starte med å forklare de grunnleggende Linux finne kommandoer med eksempler. Dette vil vise deg hvordan å finne filer og kataloger. Deretter vil vi vise deg hvordan du bruker -exec alternativ til å handle på filer eller kataloger basert på deres størrelse, tillatelser, etc.,

Den generelle syntaksen for kommandoen finn er

find {path} {name -of-file or dir-to-search} {action-to-take}

Hvor

I denne opplæringen, vil vi forklare hvordan for å finne filer og kataloger matchende angitt mønstre. Vi vil også se hvordan å utføre handlinger på filer eller kataloger som finn-kommandoen finner. Veiledningen er basert på Ubuntu, men er gjeldende for de fleste Linux-distribusjoner, og versjoner.

søk etter filer og Kataloger

Finn bestemte filer etter navn eller utvidelse

for Å søke etter en bestemt fil, kan du kjøre følgende kommando fra root (/)., Kommandoen inneholder den eksakte navn for filen du søker etter.

find . -name file22.txt

Output

./test/file22.txt./sales/file22.txt

Vær oppmerksom på at resultatene inkluderer banen. Dette er viktig hvis du ikke vet katalogen der filen er plassert, eller når det er på mer enn ett sted.

Du kan også søke etter filen i en annen mappe mens de fortsatt i den nåværende plasseringen. I dette tilfellet, må du oppgi banen til katalogen hvor du ønsker å søke etter.,

find ./test -name file22.txt

Ser for bestemte filer i en annen mappe

I vårt tilfelle, vil vi lete etter alle de som begynner med disse bokstavene fil i test-katalogen.

find ./test -name file*

Output

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Søk etter filer ved utvidelse

for Å finne en fil i Linux med en viss utvidelse, legge det til i kommandoen.,

find . -name *.txt

Output

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Finn filer og mapper ved navn

Bruk kommandoen nedenfor for å søke etter filer og mapper som starter med bokstavene qa. I datamaskinen vår, har vi qatree.txt og qa.txt filer samt en katalog ved navn qa.,

Dersom vi kjører kommandoen;

find ./ -name "qa*"

Det gir følgende resultat

./test/qatree.pdf./test/qa.txt./home/qa

– kommandoen returnerer både filer og kataloger søkekriteriene. For å finne filer eller kataloger bare, må du angi dette i kommandoen.

Finn filer eller kataloger bare

av filer, kan du bruke type f slå på.

– Filer

find ./ -type f -name "qa*"

Output

./test/qatree.pdf./test/qa.txt

Kataloger bare

Legg til type d alternativ for å finne kataloger bare.,

find ./ -type d -name "qa*"

Output

./home/qa

mellom store og små Bokstaver finne kommandoen

Alle søk med -name switch er case sensitive og vil ikke gi resultater med store bokstaver. For å få alle tilfeller, bruk -iname alternativ.

find ./ -iname "qa*"

Output

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Søk etter en fil fra flere kataloger

for Å finne filer i forskjellige mapper, legge til sine stier i kommandoen., I vårt tilfelle, vil vi sjekke i test og numeric kataloger.

find ./test ./numeric -name file22.txt -type f

Output

./test/file22.txt/root/numeric/file22.txt

Finn flere filer med ulike utvidelser fra alle kataloger

Du kan bruke kommandoen finn for å finne flere filer som deler de forskjellige utvidelser som for eksempel *.doc, *.txt *.pdf, osv. Dette kan gjøres separat, en forlengelse på en gang, eller ved bruk av kun en kommando som inkluderer alle de ønskede utvidelser.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

output

Finn filer som inneholder bestemt tekst

noen Ganger ønsker du å ha tilgang til en fil som inneholder bestemt tekst, men kan ikke huske sine fil eller beliggenhet. Denne kommandoen gir deg mulighet til å finne alle filene inneholder målet tekst.

for Å søke etter alle filer som inneholder ordet hyperconvergence», bruk;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

–jeg alternativet kan kommandoen til å ignorere tilfeller og vil finne tekst enten aktivert eller ikke, dvs. hyperconvergence, Hyperconvergence , etc.,

for Å se etter filer i en bestemt mappe, kan du legge det til kommandoen

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Output

./numeric/hci

søk etter Filer og Kataloger Basert på Størrelse

Du kan finne alle filer eller kataloger som er mindre, lik eller større enn en viss størrelse, innenfor et bestemt område eller tomme. Bruk riktig størrelse format avhengig av filer eller kataloger som du søker etter.,nd-filer av en viss størrelse – lik 30MB

for Å Søke finne alle 30MB filer

find / -size 30M

Finn filer som er større enn en spesifisert størrelse

find -size +2M

Output

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Finn filer som er mindre enn 10MB i den gjeldende katalogen

find . -type f -size -10M

Finn filer med størrelser mellom 100-200 MB

Når du ser etter filer innenfor et bestemt område, for eksempel mellom 100 og 200 MB

find / -size +100M -size -200M

Se etter kataloger større enn 20kb

find / -type d -size +20k

Finn tomme filer og kataloger.,

Filer

find ./ -type f -size 0

eller

find ./ -type f –empty

Kataloger

find ./ -type d –empty

Finn filer på grunn av alder eller modifikasjon tid

Finne filer som er eldre enn antall dager

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8 vil se ut for txt filer som er eldre enn 8 dager.,

endring Av dato

Dette vil se etter filer som ble endret i løpet av de siste 17 timer

find . -mtime -17 -type f 

Ser for kataloger endret i løpet av de siste 10 dager

find . -mtime -10 -type d 

Finn filer som er basert på tilgang til eller endring

Finne filer basert på dato eller klokkeslett for tilgang. Dette lar deg se filer som har eller ikke har vært i bruk i en angitt periode.

for Å se filer som ikke er blitt brukt i løpet av de siste 10 dager i hjemmekatalogen.,

find /home -atime +10

Filene som brukes av nøyaktig 10 dager siden

find /home -atime 10

brukt i løpet av de siste 10 dager

find /home -atime -10

Finn filer som ble endret i løpet av de siste n dagene

Du kan også se etter filer i /home directory endret i løpet av de siste 10 dager ved å bruke kommandoen;

find /home -mtime -10 

Finn filer som ble endret i løpet av en bestemt periode.

For eksempel, alle filer som ble endret mellom 6 og 15 dager siden i hjemmekatalogen.,

find /home -type f -mtime +6 -mtime -15

Filer og kataloger brukt i løpet av de siste 10 minuttene

for Å finne filer som er brukt i løpet av de siste 10 minutter, kan du bruke-amin alternativ.

find . -amin -10 -type f

Output

./.bash_history./.profileroot@ubuntu1804:~#

Kataloger brukt i løpet av de siste 10 minuttene

find . -amin -10 -type d

søk etter filer som passer til spesifikke tillatelser

Syntaks

$ find -perm mode

Hvor modus er den tillatelse som er enten numeriske for eksempel 644, 655, 700, 777, osv, eller bokstaver som u=x, a=r+x, osv.,

Du kan angi modus i følgende tre ulike måter.

  1. Uten prefiks når du ønsker å finne filer med nøyaktig tillatelser som er angitt.
  2. Med «-» for filer med minst den angitte tillatelse. Denne returnerer filer med angitte samt ytterligere høyere tillatelser.
  3. ved Hjelp av «/» krever spesifisere eier eller gruppe med tillatelse til filen.,

Finn filer med tillatelse 777

find -perm 777

Output

./file1

Finne filer med minst 766
finn -perm -766

Output

./file2./file1

– kommandoen ser etter alle filer som

  • filen eier har lese/skrive – /kjøretillatelser.
  • Gruppe har lese-og skrivetillatelser
  • Andre har lese-og skrivetilgang

Som sådan, går den tilbake to filer som oppfyller dette kriteriet – fil1 og fil2., Filene trenger ikke å ha nøyaktig 766 tillatelser og kan ha flere de så lenge, men må minst ha angitt.

Finn filer som er skrivbare av eieren

Vi vil nå bruke «/» å ser etter filer som er skrivbare av enten sin eier, eller en gruppe, eller andre.

find -perm /222../file2./file3./file1

Den ovenfor ser etter filer som er skrivbare av enten sin eier eller gruppe.
Dette returnerer filer som er skrivbare av heller, men ikke nødvendigvis begge. For å se filer, der begge har skrivetilgang tillatelsene, kan du bruke den – prefiks.,

./file2./file1

Finn filer som eies av en bruker

Finne alle filer som eies av Jack

find /home -user jack

Output

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Finn bestemte filer eies av en bruker

Finn alle tekstfiler som eies av Jack

find /home -user jack -iname "*.txt"

Output

/home/jack/docs/file32.txt

Finn og liste over filer og kataloger sammen med sine tillatelser

find -name "*.conf" | ls -l

Output

Søk og handle på resultater

I denne delen, vi vil se på hvordan du kan handle på filene som samsvarer med det mønsteret som er angitt i finn-kommandoen.,

Finn filer og endre tillatelser

Finne og endre tillatelsene for bestemte filtyper. I vårt tilfelle vil vi arbeide med PHP filer med ulike tillatelser som vist nedenfor.,

Vi vil nå se for alle PHP-filene (ovenfor) og kan erstatte deres tillatelser med 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

– kommandoen ser for PHP-filer i ver – katalogen, og deretter setter sin tillatelse til 755 (rwxr-xr-x)

Resultater

Finn og endre fil og mappe tillatelser

Finne filer med 644 tillatelser og endre dem til å ha 655 tillatelser

find . -type f -perm 644 -exec chmod 655 {} ;

Du kan også se for kataloger med 644 tillatelser og erstatte denne med 755.,

find . -type d -perm 644

Output

./docs 

De dokumenter-mappen har 644 tillatelser

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

for Å angi det til 755, vi kjører

find . -type d -perm 644 -exec chmod 755 {} ;

Nå kan vi se igjen for å se hva som 755

find . -type d -perm 755

Output
.
./docs

Fra ovenfor kan vi se roten og dokumenter kataloger ha 755 tillatelser.,

Ls –la – kommandoen gir følgende detaljer

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Finn og kopiere filer eller kataloger

Finn og kopier en bestemt fil til en mappe

– kommandoen nedenfor finner file22.txt-filen og kopiere den til ~/tmp/images – katalogen.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

Finn og kopier en type filer til en katalog

for Å finne filer, for eksempel bilder med jpg forlengelse i gjeldende mappe og kopiere dem til et annet sted som en bilder-mappen, bruker du;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

Dette vil finne og kopiere alle jpg-filer til ~/tmp/images mappe.

Finn og kopiere en fil til mange kataloger

Finne og kopiere en enkelt til flere kataloger.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Dette vil finne den file hci-filen og kopiere den til tre kategorier av /tmp/dir1/ /tmp/dir2/ og $HOME/3/

Finn og flytte filer til en annen mappe

for Å flytte en kjent fil fra en mappe til en annen., For å flytte universal.php fil;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Søk og flytter filer med en viss utvidelse til en annen mappe

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Finn bestemte filer og flytte til en bestemt annen mappe

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

– kommandoen ser etter alle filer med navn som starter med uni og å ha noen utvidelse. Det flytter dem deretter til katalogen /unifiles/

Finn og flytte filer basert på alder

Finne og flytte filer som er eldre enn angitt dager til en annen plassering, for eksempel arkivet.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Dette vil se ut for pdf-filer som er eldre enn 20 dager og flytte dem til den backup1 katalogen.,filer og kataloger

syntaksen for å finne og fjerne filer eller mapper i gjeldende mappe er

find . -type f -name "file to delete" -exec rm -f {} ; for å slette filer eller

find . -type d -name "dir-to-delete" -exec rm -rf {} ; for å slette kataloger bare

Finn og slette bestemte filer

for Å finne og slette filer som begynner med til, bruk;

find . -type f -name "til*" -exec rm {} ; 

for Å finne og slette mapper som starter med til

find . -type d -name "til*" -exec rm {} ;

Fjern for både filer og kataloger

find . -name "til*" -exec rm -rf {} ; 

Dette vil fjerne både filer og kataloger som begynner med disse bokstavene til.,

Slett ved utvidelse

Nedenfor er hvordan du kan finne og slette alle txt filer i gjeldende mappe. Erstatt txt med en annen filtype, for eksempel bak, pdf eller noen andre som du vil fjerne.

find . -type f -name "*.txt" -exec rm -f {} ;

I tilfelle du vil systemet be deg om å bekrefte før sletting av hver fil, legge til -i valget nedenfor.,

find . -type f -name "*.txt" -exec rm -i {} ;

Output

standard -rm vil ikke fjerne kataloger og du trenger å bruke –r alternativet sikrer en rekursiv fjerning. Dette sikrer at du vil slette tomme mapper og de inneholder filer. -f alternativet tvinger fjerning og er brukt for både filer og kataloger.

Finne og slette filer som er eldre enn antall dager

Finne og slette backup filer som er eldre enn 20 dager fra gjeldende mappe.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Dette vil slette alle .bak filer som er eldre enn 20 dager.

Finne og slette kataloger bare

for Å slette en mappe som heter dir22

find . -type d -name dir22 -exec rm -rf {} ;

Sørg for at du matche directory navn sak eller bruk det -iname alternativ.

find . -type d -iname Dir22 -exec rm -rf {} ;

Fjerner både Dir22 og dir22

for Å bekrefte før sletting, kan du bruke det -jeg-alternativet.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Output
rm: fjern katalogen ‘./Dir22’?, n
rm: fjern katalogen ‘./dir22’? y

I vårt tilfelle, vi har skrevet n for katalogen Dir22 som ikke vil bli slettet og y for dir22 som vil nå være fjernet.

Finn og fjern tomme filer

Du kan bruke hvilken som helst av følgende kommandoer for å finne tomme filer og slette dem automatisk.

find ./ -type f -size 0 -exec rm -f {} ;

eller
søk ./ -type f -size 0 | xargs rm -f
eller
søk .,/ -type f -størrelse 0 –slett

Finn og fjern tomme kataloger

for Å fjerne tomme mapper vil vi bruke d alternativ.

find ./ -type d -empty -exec rmdir {} ;

et Annet alternativ er å bruke slett-i stedet for å fjerne.

find ./ -type d -empty -delete

Vær oppmerksom på at hvis du sletter system eller kritiske filer fra datamaskinen din kan skade operativsystemet eller programmene eller føre til tap av viktige data.

for Å unngå utilsiktet sletting, det er best å bruke en ikke-root-bruker-konto., Også, sørge for at du sletter den riktige filer som ikke er nyttig, og at du har en backup av alle dine data filer bare i tilfelle.

Hva er neste?

Gå videre og prøve ovenfor Linux finne kommandoer i laboratoriet eller IKKE produksjonsmiljø. Se om du kan bruke til å automatisere file system opprydding med Crontab. Og, for å mestre Linux, sjekk ut dette online kurset.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Hopp til verktøylinje