Ero sivun ”Locate” versioiden välillä
Siirry navigaatioon
Siirry hakuun
laajennos/rewrite
p (uuteen hienoon luokkaan) |
Pb (keskustelu | muokkaukset) (laajennos/rewrite) |
||
Rivi 1: | Rivi 1: | ||
Locate on | Locate on [[komentorivi]]ohjelma, jolla saa selville tiedoston tai [[Hakemisto|hakemiston]] sijainnin antamalla sille sen nimen osan. Locaten käyttö pohjautuu ennakolta luotuun tietokantaan, joten se toimii huomattavasti [[find]]-ohjelmaa nopeammin. | ||
Puutteena suhteessa findiin on tietokannan luonnin jälkeen tapahtuneiden muutosten puuttuminen hakutuloksesta sekä edistyneempien toimintojen käyttö, kuten mahdollisuus tehdä hakuja muunkin kuin tiedostonnimen perusteella. Locaten haut kohdistuvat myös aina koko järjestelmään (rajoittuen toki niihin hakemistoihin, joihin käyttäjällä on lukuoikeus). | |||
Yleisimmät locate-toteutukset ovat nimeltään slocate ja mlocate. Mlocate on [[Red Hat]]in kehittämä korvaava toteutus slocatelle. Mlocate poikkeaa slocatesta siinä, että se ei tietokannan päivityksen yhteydessä luo uudestaan koko tietokantaa, vaan päivittää vain muuttuneet tiedot. Tämä lyhentää tietokannan päivitysajan murto-osaan alkuperäisestä. | |||
==Käyttö== | |||
Etsitään kaikki tiedostot, joiden hakupolku (tiedostonnimi + hakemisto-osa) sisältää sanan ''tetris'': | |||
locate tetris | |||
Tämä tulostaa esimerkiksi seuraavaa: | |||
/usr/games/[[Bsdgames|tetris-bsd]] | /usr/games/[[Bsdgames|tetris-bsd]] | ||
/usr/share/doc/screen/terminfo/tetris.c | /usr/share/doc/screen/terminfo/tetris.c | ||
/usr/share/man/man6/tetris-bsd.6.gz | /usr/share/man/man6/tetris-bsd.6.gz | ||
/var/games/bsdgames/tetris-bsd.scores | /var/games/bsdgames/tetris-bsd.scores | ||
Jos halutaan kohdistaa haku vain varsinaisiin tiedostonnimiin, voidaan käyttää valitsinta <tt>-b</tt>: | |||
locate -b game | |||
Valitsimella <tt>-r</tt> voidaan käyttää hyödyksi [[säännöllinen lauseke|säännöllisiä lausekkeita]]. Seuraava etsisi kaikki tiedostot, joiden varsinainen tiedostonnimi alkaa kirjaimella <tt>p</tt> ja päättyy merkkeihin <tt>eters</tt>. Huomaa lainausmerkit, jotka estävät [[komentotulkki]]a tulkitsemasta väärin komennon erikoismerkkejä. | |||
locate -br '^p.*eters$' | |||
Valitsimella <tt>-e</tt> voidaan etsiä vain ne tiedostot, jotka yhä ovat olemassa. Koska locate tässä tapauksessa joutuu jokaisen tietokantaosuman kohdalla tarkistamaan tiedoston olemassaolon, on tämä hakutapa hieman tavallista hitaampi. | |||
locate -e bsd | |||
==Tietokannan päivitys== | |||
Locaten tietokanta päivitetään komennolla | |||
updatedb | |||
Tämä edellyttää [[pääkäyttäjä]]n oikeuksia ja kannattaa ainakin slocaten tapauksessa ajaa taustalla. Updatedb:iä ei kuitenkaan yleensä ole tarvetta suorittaa käsin, sillä useimmissa [[jakelu]]issa se on määritelty [[cron]]in avulla suoritettavaksi kerran vuorokaudessa. | |||
==Katso myös== | |||
*[[Find]] | |||
*[[Xargs]] | |||
*[[Basename]] | |||
*[[Dirname]] | |||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] |