Ero sivun ”Locate” versioiden välillä
Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
(2 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
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: | [[Luokka:Komentorivin perustyökalut]] |
Nykyinen versio 11. syyskuuta 2015 kello 18.39
Locate on komentoriviohjelma, jolla saa selville tiedoston tai 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 Hatin 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ö[muokkaa]
Etsitään kaikki tiedostot, joiden hakupolku (tiedostonnimi + hakemisto-osa) sisältää sanan tetris:
locate tetris
Tämä tulostaa esimerkiksi seuraavaa:
/usr/games/tetris-bsd /usr/share/doc/screen/terminfo/tetris.c /usr/share/man/man6/tetris-bsd.6.gz /var/games/bsdgames/tetris-bsd.scores
Jos halutaan kohdistaa haku vain varsinaisiin tiedostonnimiin, voidaan käyttää valitsinta -b:
locate -b game
Valitsimella -r voidaan käyttää hyödyksi säännöllisiä lausekkeita. Seuraava etsisi kaikki tiedostot, joiden varsinainen tiedostonnimi alkaa kirjaimella p ja päättyy merkkeihin eters. Huomaa lainausmerkit, jotka estävät komentotulkkia tulkitsemasta väärin komennon erikoismerkkejä.
locate -br '^p.*eters$'
Valitsimella -e 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[muokkaa]
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 jakeluissa se on määritelty cronin avulla suoritettavaksi kerran vuorokaudessa.