Kommandoen find i Linux brukes til å søke etter filer og kataloger i spesifiserte kataloger basert på ulike kriterier. Denne kommandoen er et av de kraftigste og mest utbredte verktøyene i Linux.
Det grunnleggende formatet til find-kommandoen er som følger:
find [path] [expression]
hvor:
path
er stien til katalogen det skal søkes etter filer i (som standard søker find i den aktuelle katalogen og alle dens underkataloger);
expression
er et uttrykk som definerer kriteriene for søket etter filer.
Følgende er noen av de vanligste søkekriteriene som kan brukes i et uttrykk for find-kommandoen:
-name
: Søk etter filer etter navn. For eksempel: -type
find /home/user -name myfile.txt
-type
: Søk etter filer av en bestemt type (for eksempel f for
vanlige filer eller d
for kataloger). For eksempel: -size
find /home/user -type f
-size
: Søk etter filer etter størrelse. For eksempel: -mtime
find /home/user -size +10M
-mtime
: Søk etter filer etter siste endringstidspunkt. For eksempel: -user
find /home/user -mtime -7
-user
og -group
: Søk etter filer etter eier og gruppe. For eksempel: -user:
find /home/user -user bob -group users
Du kan bruke de logiske operatorene -and
, -or
og -not
til å kombinere flere søkekriterier i ett enkelt uttrykk.
Følgende kommando vil for eksempel finne alle filer i katalogen /home/user
som har blitt endret i løpet av de siste 7 dagene, og som er større enn 10 megabyte:
find /home/user -type f -mtime -7 -size +10M
Kommandoen find lar deg også utføre ulike handlinger på filene du finner, ved hjelp av alternativet -exec
. Du kan for eksempel slette alle filer som ble endret for mer enn 30 dager siden, ved hjelp av følgende kommando:
find /home/user -type f -mtime +30 -exec rm {} ;
Her kjører -exec-alternativet
kommandoen rm
for hver fil som blir funnet, og bruker {}
som erstatning for filnavnet i kommandoen.
Kommandoen find
er et kraftig verktøy for å finne filer og kataloger i Linux, som kan brukes til å utføre ulike administrasjonsrelaterte oppgaver.
Kommandoen find
støtter mange andre alternativer som kan brukes til å finne filer mer nøyaktig:
-iname
: Søk etter filer etter navn uten hensyn til store og små bokstaver. For eksempel
find /home/user -iname myfile.txt
-regex
: Søk etter filer hvis navn samsvarer med et gitt regulært uttrykk. For eksempel: -maxdepth:
find /home/user -regex ".*.txt$"
-maxdepth
og -mindepth
: begrenser dybden på søket etter filer i underkataloger. For eksempel: -prune
find /home/user -maxdepth 2 -type f
-prune
: ekskluderer visse kataloger fra søket. For eksempel: -prune
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: skriver ut listen over funnet filer til standardutdata. For eksempel: -print
find /home/user -type f -print
find
støtter også søk i filer etter ulike attributter, for eksempel tillatelser, filattributter, SELinux-etiketter
og annet. Du finner mer informasjon om disse alternativene i dokumentasjonen til find-kommandoen
.
Kommandoen kan søke etter filer og kataloger i hele filsystemet, noe som kan ta mye tid og ressurser. Derfor er det viktig å være forsiktig når du bruker denne kommandoen, og sørge for at søkekriteriene er satt riktig for å unngå å finne unødvendige filer eller feil i systemet.