Locate

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Autor

Priit P.

Rühm A21

30.11.2015

Sissejuhatus

locate on programm UNIXile ja UNIXi-laadsetele operatsioonisüsteemidele, mis võimaldab otsida faile ja kaustu nende nime alusel.[1]

Windows operatsioonisüsteemide perekonnale on saadaval locate'i alternatiiv programmi Locate32 näol.[2]

Töömehhanism

locate võrdleb antud argumenti (s.t otsitavat failinime või selle osa - metasümbolite või regulaaravaldise abiga) spetsiaalse andmebaasi sissekannetega.[1] Nimetatud andmebaasi on kantud failide nimed ja nende asukohad. Sissekannete uuendamine toimub käsitsi, kasutades juurkasutajana käsku updatedb või automatiseeritult - näiteks cron abiga.[3][4] Locate'i andmebaasi kasutuse eeliseks on kiirusevõit otsingutel, aga puuduseks andmebaasi intervallipõhine uuendamine, mille tulemusel ei pruugi locate leida uusimaid muudatusi - veel baasi kandmata või vahepeal kustatud faile.[5]

Kasutamine

Üldjuhul eksisteerib locate Linuxi distributsioonide tarkvara repositooriumites nime all "locate".

locate toimib tavakasutaja- ning updatedb juurkasutaja õigustes.

Otsingutermin, mis sisaldab metasümboleid, annab tulemuseks täpselt mustrile vastava tulemi. --regex atribuudita käsku või metasümboliteta otsinguterminit tõlgendatakse kui *otsingutermin*, s.t kummalgi pool otsinguterminit võib olla mistahes muu info.[6]

Käsuformaat

Lühidalt:[6]

locate [ARGUMENDID] OTSINGUTERMIN

Ülevaatlikult:[1]

locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i |
     --ignore-case] [-0 | --null] [-c | --count] [-w | --wholename] [-b |
     --basename] [-l N | --limit=N] [-S | --statistics] [-r | --regex ]
     [--max-database-age D] [-P | -H | --nofollow] [-L | --follow]
     [--version] [-A | --all] [-p | --print] [--help] pattern...

Käsu argumendid

Kohustuslikud

OTSINGUTERMIN - otsitav termin või selle osa koos vastava mustriga.

Valikulised

-0, --null - kasutab EOL-i asemel eraldajana null-sümbolit.

-A, --all - kuvab ainult tulemused, mis vastavad kõigile non-option argumentidele.

-b, --basename - võrdleb otsinguterminiga üksnes andmebaasikande viimast komponenti (s.t faili- või kausta nime arvestamata vasteid kataloogipuus).

-c, --count - kuvab otsingu tulemusena leitud failinimede hulga.

-d path, --database=path - võimaldab valida alternatiivseid andmebaase, kus path on andmebaasi asukoht.

-e, --existing - kuvab üksnes failid, mis eksisteerivad nii käsu käivitamise kui ka updatedb käivitamise ajahetkel.

-E, --non-existing - kuvab üksnes failid, mis käsu käivitamise ajahetkel ei eksisteeri, kuid updatedb käivitamise ajal eksisteerisid.

--help - kuvab kokkuvõtte locate'i argumentidest.

-i, --ignore-case - ignoreerib tõusutundlikkust nii failinimes kui otsinguterminis.

-l N, --limit=N - piirab otsingutulemuste hulka, kus N on suurim hulk vasteid. Kasutades koos argumendiga -c, ei ole kunagi c > N.

-L, --follow - failide olemasolu testimisel (kasutades -e või -E argumenti) liigitab symlinkid mitte-eksisteerivateks. See on vaikimisi valik.

--max-database-age D - locate hoiatab vaikimisi, kui andmebaas on vanem kui 8 päeva. Antud argumendiga on võimalik seda hoiatusperioodi muuta.

-m, --mmap - eksisteerib üksnes BSD locate'i versiooniga ühilduvuse eesmärgil.

-P, -H, --nofollow - failide olemasolu testimisel (kasutades -e või -E argumenti) liigitab symlinkid eksisteerivateks failideks.

-p, --print- kuvab otsingutulemused isegi, kui kasutusel on argumendid -S või -c.

-r, --regex - käsureale sisestatud mustrit tõlgendatakse glob-mustri asemel regulaaravaldisena.

-s, --stdio - eksisteerib üksnes BSD locate'i versiooniga ühilduvuse eesmärgil.

-S, --statistics - kuvab statistika locate'i andmebaasi kohta.

--version - kuvab locate'i versiooniinfo.

-w, --wholename - võrdleb otsinguterminiga andmebaasikande mistahes osa. See on vaikimisi valik.

[1]

Näited

".jpg" faililaiendiga failide otsimine kataloogist ~/Pictures

locate ~/Pictures/*.jpg

/home/priit/Pictures/fotod/2011/IMG_1.jpg
/home/priit/Pictures/fotod/2011/IMG_2.jpg
/home/priit/Pictures/fotod/2011/IMG_3.jpg
/home/priit/Pictures/fotod/2012/Foto1.jpg
/home/priit/Pictures/fotod/2012/Foto2.jpg
/home/priit/Pictures/fotod/2012/Foto3.jpg
/home/priit/Pictures/fotod/2013/Foto1.jpg
/home/priit/Pictures/fotod/2013/Foto2.jpg
/home/priit/Pictures/fotod/2013/Foto3.jpg


Sõna "foto" sisaldavate failide- või kaustade otsimine arvestamata tõusutundlikkust:

locate -bi foto

/home/priit/Pictures/FOTO.JPG
/home/priit/Pictures/fotod
/home/priit/Pictures/fotod/2012/Foto1.jpg
/home/priit/Pictures/fotod/2012/Foto2.jpg
/home/priit/Pictures/fotod/2012/Foto3.jpg
/home/priit/Pictures/fotod/2013/Foto1.jpg
/home/priit/Pictures/fotod/2013/Foto2.jpg
/home/priit/Pictures/fotod/2013/Foto3.jpg
/usr/bin/infotocap
/usr/share/man/man1/infotocap.1.gz

Argumentide -b ja -w võrdlus:

locate -b cowsay

/usr/games/cowsay
/usr/share/cowsay
/usr/share/doc/cowsay
/usr/share/doc/cowsay/examples/cowsay_random
/usr/share/man/man6/cowsay.6.gz
/var/cache/apt/archives/cowsay_3.03+dfsg1-10_all.deb
...


locate -w cowsay

/usr/games/cowsay
/usr/share/cowsay
/usr/share/cowsay/cows
/usr/share/cowsay/cows/apt.cow
/usr/share/cowsay/cows/beavis.zen.cow
/usr/share/cowsay/cows/bong.cow
...

Kokkuvõte

Locate on lihtne ja kiire viis leidmaks failide asukohti, mille võimekust on võimalik oluliselt laiendada kasutades otsinguterminis regulaaravaldisi.

Kasutatud allikad