Find

Linux.fista
Versio hetkellä 19. tammikuuta 2013 kello 00.56 – tehnyt 80.222.237.18 (keskustelu) (Uusi osio; ajattelin että findin yhdistäminen muihin komentoihin on niin monipuolista ja rikasta, että se ansaitsee oman osionsa.)
Siirry navigaatioon Siirry hakuun

Find-komentorivikomennolla voi etsiä tiedostoja tiettyihin ehtoihin, kuten tiedostonnimeen tai omistajaan perustuen. Find mahdollistaa myös erilaisten toimintojen suorittamisen hakutulokseen pohjautuen. Valmiiseen tietokantaan pohjautuvia hakuja voi tehdä locate-ohjelmalla ja tiedostojen sisältöä koskevia hakuja grepillä.

Käyttö

Etsii .log-päätteiset (*.log) tiedostot nykyisestä hakemistosta (.) ja alihakemistoista.

find -name '*.log'

Listaa /var-hakemistosta ja sen alihakemistoista kaikki tavalliset tiedostot (ei siis hakemistoja, laitetiedostoja, symbolisia linkkejä, nimettyjä putkia ym.) joita on muutettu viimeisen 30 minuutin aikana.

find /var -type f -mmin -30 -print

Laskee montako .jpg-tiedostoa nykyisestä hakemistosta ja sen alihakemistoista löytyy huomioiden myös isolla kirjoitetut merkit.

find -iname '*.jpg' | wc -l

Etsii nykyisestä hakemistosta ja sen alihakemistoista kaikki tavalliset tiedostot ja hakemistot jotka ovat tyhjiä ja joiden omistajaksi määriteltyä ryhmänumeroa ei vastaa mikään järjestelmän olemassaoleva ryhmä.

find -empty -nogroup

Etsii ja poistaa kaikki käyttäjän greta omistamat noin 699 megatavun kokoiset tiedostot.

find -size 699M -user greta -delete

Lisää find-komennon käyttötapoja löytyy komentorivivinkkejä-sivulta.

Findin yhdistäminen muihin komentoihin

Findin hyödyt tulevat parhaiten ilmi, kun ei vain tyydytä tiedostojen etsimiseen - työpöytäympäristöissä on yleensä oma helppokäyttöisempi ja esteettisempi työkalu tätä varten - vaan kun löydetyille tiedostoille pitää suorittaa mahdollisesti monimutkaisiakin operaatioita automaattisesti. Esimerkkinä voisi olla vaikkapa skripti, joka löytää kaikki Java-lähdekooditiedostot ja luo kunkin pohjalta oman html-sivun, jossa on sama lähdekoodi väritetty syntaksin mukaan.

Asettaa o+rwX-oikeudet file.txt-nimisille tiedostoille kaikissa alihakemistoissa.

find . -name file.txt -execdir chmod 'o+rwX' {} +

Siirtää kaikki käyttäjän jani-petteri kotihakemistossa olevat symboliset linkit, joiden nimi sisältää ison tai pienen å:n, käyttäjän tobias kotihakemiston alla sijaitsevaan foo/stuff-hakemistoon.

find ~jani-petteri -type l -iname *å*  -exec mv --target-directory=~tobias/foo/stuff/ -- {} +

Katso myös