Linuxin find-komentoa käytetään etsimään tiedostoja ja hakemistoja tietyistä hakemistoista eri kriteerien perusteella. Tämä komento on yksi Linuxin tehokkaimmista ja yleisimmistä apuohjelmista.
find-komennon perusmuoto on seuraava:
find [path] [expression]
missä:
path
on polku hakemistoon, josta tiedostoja etsitään (oletusarvoisesti find etsii nykyisestä hakemistosta ja kaikista sen alihakemistoista);
expression
on lauseke, joka määrittelee tiedostojen hakukriteerit.
Seuraavassa on joitakin yleisimpiä tiedostojen hakuehtoja, joita voidaan käyttää find-komennon lausekkeessa:
-name
: Etsi tiedostoja nimen perusteella. Esim:
find /home/user -name myfile.txt
-type
: tietyn tyyppisten tiedostojen etsiminen (esimerkiksi f
tavallisille tiedostoille tai d
hakemistoille). Esim:
find /home/user -type f
-size
: etsi tiedostoja koon mukaan. Esim:
find /home/user -size +10M
-mtime
: Etsi tiedostoja viimeisimmän muutosajan mukaan. Esim:
find /home/user -mtime -7
-user
ja -group
: Etsi tiedostoja omistajan ja ryhmän mukaan. Esim:
find /home/user -user bob -group users
Voit käyttää loogisia operaattoreita -and
, -or
ja -not
yhdistämään useita hakuehtoja yhdeksi lausekkeeksi.
Esimerkiksi seuraava komento etsii hakemistosta /home/user
kaikki tiedostot, joita on muokattu viimeisten 7 päivän aikana ja jotka ovat suurempia kuin 10 megatavua:
find /home/user -type f -mtime -7 -size +10M
find-komennolla voit myös suorittaa erilaisia toimintoja löydetyille tiedostoille käyttämällä -exec-vaihtoehtoa
. Voit esimerkiksi poistaa kaikki tiedostot, joita on muokattu yli 30 päivää sitten, käyttämällä seuraavaa komentoa:
find /home/user -type f -mtime +30 -exec rm {} ;
Tässä -exec-vaihtoehto
suorittaa rm-komennon
jokaiselle löydetylle tiedostolle ja korvaa tiedostonimen komennossa {}:llä
.
find-komento
on tehokas työkalu tiedostojen ja hakemistojen etsimiseen Linuxissa, ja sitä voidaan käyttää erilaisten hallintaan liittyvien tehtävien suorittamiseen.
find-komento
tukee monia muita vaihtoehtoja, joita voidaan käyttää tiedostojen tarkempaan etsimiseen:
-iname
: hakee tiedostoja nimen perusteella ottamatta huomioon merkkien isoja ja pieniä kirjaimia. Esim:
find /home/user -iname myfile.txt
-regex
: etsi tiedostoja, joiden nimet vastaavat annettua säännöllistä lauseketta. Esim:
find /home/user -regex ".*.txt$"
-maxdepth
ja -mindepth
: rajoittaa alihakemistoissa olevien tiedostojen haun syvyyttä. Esim:
find /home/user -maxdepth 2 -type f
-prune
: jättää tietyt hakemistot haun ulkopuolelle. Esim:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: tulostaa löydettyjen tiedostojen luettelon standarditulosteeseen. Esim:
find /home/user -type f -print
find
tukee myös tiedostojen etsimistä erilaisten attribuuttien, kuten käyttöoikeuksien, tiedostojen attribuuttien, SELinux-merkintöjen
ja muiden perusteella. Lisätietoja näistä vaihtoehdoista on find-komennon
dokumentaatiossa.
Komento voi etsiä tiedostoja ja hakemistoja koko tiedostojärjestelmästä, mikä voi viedä paljon aikaa ja resursseja. Siksi on tärkeää olla varovainen tätä komentoa käytettäessä ja varmistaa, että hakuehdot on asetettu oikein, jotta vältytään tarpeettomien tiedostojen tai virheiden löytämiseltä järjestelmästä.