Ero sivun ”Find” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(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
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/ -- {} +


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/ -- {} +

Katso myös