Linuxi käsku find kasutatakse failide ja kataloogide otsimiseks määratud kataloogides erinevate kriteeriumide alusel. See käsk on üks võimsamaid ja levinumaid Linuxi utiliite.
Find käsu põhiline formaat on järgmine:
find [path] [expression]
kus:
path
on tee kataloogi, kust faile otsitakse (vaikimisi otsib find praeguses kataloogis ja kõigis selle alamkataloogides);
expression
on väljendus, mis määratleb failide otsimise kriteeriumid.
Järgnevalt on toodud mõned kõige levinumad failide otsimise kriteeriumid, mida saab kasutada find-käsu väljendis:
-name
: otsib faile nime järgi. Näiteks:
find /home/user -name myfile.txt
-type
: otsida kindlat tüüpi faile (näiteks f
tavaliste failide puhul või d
kataloogide puhul). Näiteks:
find /home/user -type f
-size
: otsida faile suuruse järgi. Näiteks:
find /home/user -size +10M
-mtime
: otsib faile viimase muutmise aja järgi. Näiteks:
find /home/user -mtime -7
-user
ja -group
: otsida faile omaniku ja grupi järgi. Näiteks:
find /home/user -user bob -group users
Saate kasutada loogilisi operaatoreid -and
, -or
ja -not, et
kombineerida mitu otsingukriteeriumi üheks väljendiks.
Näiteks leiab järgmine käsk kõik failid kataloogis /home/user
, mida on muudetud viimase 7 päeva jooksul ja mis on suuremad kui 10 megabaiti:
find /home/user -type f -mtime -7 -size +10M
Käsk find võimaldab ka erinevaid toiminguid leitud failidega teha, kasutades valikut -exec
. Näiteks saate kustutada kõik failid, mida on muudetud rohkem kui 30 päeva tagasi, kasutades järgmist käsku:
find /home/user -type f -mtime +30 -exec rm {} ;
Siin käivitab -exec
valik iga leitud faili puhul käsu rm
ja kasutab käsus failinime asendamiseks {}
.
Käsk find
on võimas vahend failide ja kataloogide leidmiseks Linuxis, mida saab kasutada mitmesuguste juhtimisega seotud ülesannete täitmiseks.
Käsk find
toetab mitmeid teisi valikuid, mida saab kasutada failide täpsemaks leidmiseks:
-iname
: otsib faile nime järgi, arvestamata tähemärkide suurust. Näiteks:
find /home/user -iname myfile.txt
-regex
: otsib faile, mille nimi vastab antud regulaaravaldisele. Näiteks:
find /home/user -regex ".*.txt$"
-maxdepth
ja -mindepth
: piiravad alamkataloogides olevate failide otsimise sügavust. Näiteks:
find /home/user -maxdepth 2 -type f
-prune
: välistada teatud kataloogid otsingust. Näiteks:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: väljastada leitud failide nimekiri standardväljundile. Näiteks:
find /home/user -type f -print
find
toetab ka failide otsimist erinevate atribuutide, näiteks õiguste, faili atribuutide, SELinuxi
märgiste jt järgi. Lisateavet nende valikute kohta leiate käsu find
dokumentatsioonist.
Käsk võib otsida faile ja katalooge kogu failisüsteemis, mis võib võtta palju aega ja ressursse. Seetõttu on oluline olla selle käsu kasutamisel ettevaatlik ja veenduda, et otsingukriteeriumid on õigesti seatud, et vältida ebavajalike failide või vigade leidmist süsteemis.