Ero sivun ”Find” versioiden välillä
(Jonkin verran tehokkaampi tapa.) |
(Uusi osio; ajattelin että findin yhdistäminen muihin komentoihin on niin monipuolista ja rikasta, että se ansaitsee oman osionsa.) |
||
Rivi 11: | Rivi 11: | ||
Laskee montako .jpg-tiedostoa nykyisestä hakemistosta ja sen alihakemistoista löytyy huomioiden myös isolla kirjoitetut merkit. | Laskee montako .jpg-tiedostoa nykyisestä hakemistosta ja sen alihakemistoista löytyy huomioiden myös isolla kirjoitetut merkit. | ||
find -iname '*.jpg' | [[wc]] -l | find -iname '*.jpg' | [[wc]] -l | ||
Etsii nykyisestä hakemistosta ja sen alihakemistoista kaikki tavalliset tiedostot ja hakemistot jotka ovat tyhjiä ja joiden omistajaksi määriteltyä [[GID|ryhmänumeroa]] ei vastaa mikään järjestelmän olemassaoleva ryhmä. | Etsii nykyisestä hakemistosta ja sen alihakemistoista kaikki tavalliset tiedostot ja hakemistot jotka ovat tyhjiä ja joiden omistajaksi määriteltyä [[GID|ryhmänumeroa]] ei vastaa mikään järjestelmän olemassaoleva ryhmä. | ||
Rivi 25: | Rivi 19: | ||
Lisää find-komennon käyttötapoja löytyy [[komentorivivinkkejä]]-sivulta. | 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-[[Tiedoston oikeudet|oikeudet]] <tt>file.txt</tt>-nimisille tiedostoille kaikissa alihakemistoissa. | |||
find . -name file.txt -execdir [[chmod]] 'o+rwX' {} + | |||
Siirtää kaikki käyttäjän jani-petteri kotihakemistossa olevat [[symbolinen linkki|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== | ==Katso myös== |
Versio 19. tammikuuta 2013 kello 00.56
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/ -- {} +