Locate: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
==Autor== | ==Autor== | ||
Priit Pennula | Priit Pennula | ||
Line 14: | Line 12: | ||
==Töömehhanism== | ==Töömehhanism== | ||
locate võrdleb käsule antud argumenti (s.t otsitavat failinime või selle osa - metasümbolite või regulaaravaldise abiga) spetsiaalse andmebaasi sissekannetega.<ref name="locateman"></ref> Sellesse andmebaasi on kantud failide nimed ja nende suhtelised asukohad. Sissekandeid on võimalik uuendada käsitsi, kasutades selleks juurkasutajana käsku updatedb või automatiseeritult - näiteks cron abiga.<ref> [http://man7.org/linux/man-pages/man1/updatedb.1.html updatedb(1) - Linux manual page] </ref><ref> [http://linux.die.net/man/8/updatedb updatedb(8) - Linux man page] </ref> locate'i andmebaasi kasutuse eeliseks on kiirusevõit otsingutel, aga puuduseks andmebaasi intervallipõhine uuendamine, mille tulemusel ei pruugi locate leida uusimaid, veel baasi kandmata faile.<ref>[http://www.linfo.org/locate.html The locate Command]</ref> | locate võrdleb käsule antud argumenti (s.t otsitavat failinime või selle osa - metasümbolite või regulaaravaldise abiga) spetsiaalse andmebaasi sissekannetega.<ref name="locateman"></ref> Sellesse andmebaasi on kantud failide nimed ja nende suhtelised asukohad. Sissekandeid on võimalik uuendada käsitsi, kasutades selleks juurkasutajana käsku <code>updatedb</code> või automatiseeritult - näiteks cron abiga.<ref> [http://man7.org/linux/man-pages/man1/updatedb.1.html updatedb(1) - Linux manual page] </ref><ref> [http://linux.die.net/man/8/updatedb updatedb(8) - Linux man page] </ref> locate'i andmebaasi kasutuse eeliseks on kiirusevõit otsingutel, aga puuduseks andmebaasi intervallipõhine uuendamine, mille tulemusel ei pruugi locate leida uusimaid, veel baasi kandmata faile.<ref>[http://www.linfo.org/locate.html The locate Command]</ref> | ||
==Kasutamine== | ==Kasutamine== | ||
Üldjuhul | Üldjuhul eksisteerib locate Linuxi distributsioonide tarkvara repositooriumites "locate" nime all. | ||
locate töötab tavakasutaja- ning updatedb juurkasutaja õigustes. | <code>locate</code> töötab tavakasutaja- ning <code>updatedb</code> juurkasutaja õigustes. | ||
Otsingutermin, mis sisaldab metasümboleid, annab tulemuseks täpselt mustrile vastava tulemi. | Otsingutermin, mis sisaldab metasümboleid, annab tulemuseks täpselt mustrile vastava tulemi. | ||
Line 27: | Line 25: | ||
===Käsuformaat=== | ===Käsuformaat=== | ||
Lühidalt:<ref name="die"></ref> | Lühidalt:<ref name="die"></ref> | ||
< | |||
<code>locate [ARGUMENDID] OTSINGUTERMIN</code> | |||
Ülevaatlikult:<ref name="locateman"></ref> | Ülevaatlikult:<ref name="locateman"></ref> | ||
<pre>locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i | | <pre>locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i | | ||
--ignore-case] [-0 | --null] [-c | --count] [-w | --wholename] [-b | | --ignore-case] [-0 | --null] [-c | --count] [-w | --wholename] [-b | | ||
Line 39: | Line 39: | ||
====Kohustuslikud==== | ====Kohustuslikud==== | ||
OTSINGUTERMIN - otsitav termin või selle osa koos vastava mustriga. | '''OTSINGUTERMIN''' - otsitav termin või selle osa koos vastava mustriga. | ||
====Valikulised==== | ====Valikulised==== | ||
Line 85: | Line 85: | ||
===Näited=== | ===Näited=== | ||
Otsime faile nimetuse algusega "kaust" tõusutundlikkust arvestamata: | |||
<code>locate -ib kaust*</code> | |||
Tulemus: | |||
<pre>/home/priit/Desktop/kaustSUUR | |||
/home/priit/Desktop/kaustSUUR/KaUstpisike</pre> | |||
Otsime kataloogist ~/Desktop/pildid png-faililaiendiga faile: | |||
<code>locate ~/Desktop/pildid/*.png</code> | |||
Tulemus: | |||
<pre>/home/priit/Desktop/pildid/1.png | |||
/home/priit/Desktop/pildid/3.png | |||
/home/priit/Desktop/pildid/555554.png | |||
/home/priit/Desktop/pildid/55555.png</pre> | |||
Demonstreerimaks intervallipõhise uuendamise puudust: kataloog pildid koos sisuga on eemaldatud, kuid andmebaas on veel uuendamata, kasutame -E argumenti ja otsinguterminit "pildid": | |||
<code>locate -E pildid</code> | |||
Tulemus: | |||
<pre>/home/priit/Desktop/pildid | |||
/home/priit/Desktop/pildid/1.png | |||
/home/priit/Desktop/pildid/3.png | |||
/home/priit/Desktop/pildid/555554.png | |||
/home/priit/Desktop/pildid/55555.png | |||
/home/priit/Desktop/pildid/jpg.jpg</pre> | |||
==Kasutatud allikad== | ==Kasutatud allikad== |
Revision as of 21:18, 30 November 2015
Autor
Priit Pennula
Rühm A21
30.11.2015
Sissejuhatus
locate on programm UNIXile ja UNIXi-laadsetele operatsioonisüsteemidele, mis võimaldab otsida faile nende nime alusel.[1]
Windows operatsioonisüsteemide perekonnale on saadaval locate'i alternatiiv programmi Locate32 näol.[2]
Töömehhanism
locate võrdleb käsule antud argumenti (s.t otsitavat failinime või selle osa - metasümbolite või regulaaravaldise abiga) spetsiaalse andmebaasi sissekannetega.[1] Sellesse andmebaasi on kantud failide nimed ja nende suhtelised asukohad. Sissekandeid on võimalik uuendada käsitsi, kasutades selleks 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, veel baasi kandmata faile.[5]
Kasutamine
Üldjuhul eksisteerib locate Linuxi distributsioonide tarkvara repositooriumites "locate" nime all.
locate
töötab 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 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 mustriga üksnes andmebaasis olevat basename'i.
-c, --count - kuvab üksnes 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 mustriga andmebaasis olevat täispikka failinime. See on vaikimisi valik.
Näited
Otsime faile nimetuse algusega "kaust" tõusutundlikkust arvestamata:
locate -ib kaust*
Tulemus:
/home/priit/Desktop/kaustSUUR /home/priit/Desktop/kaustSUUR/KaUstpisike
Otsime kataloogist ~/Desktop/pildid png-faililaiendiga faile:
locate ~/Desktop/pildid/*.png
Tulemus:
/home/priit/Desktop/pildid/1.png /home/priit/Desktop/pildid/3.png /home/priit/Desktop/pildid/555554.png /home/priit/Desktop/pildid/55555.png
Demonstreerimaks intervallipõhise uuendamise puudust: kataloog pildid koos sisuga on eemaldatud, kuid andmebaas on veel uuendamata, kasutame -E argumenti ja otsinguterminit "pildid":
locate -E pildid
Tulemus:
/home/priit/Desktop/pildid /home/priit/Desktop/pildid/1.png /home/priit/Desktop/pildid/3.png /home/priit/Desktop/pildid/555554.png /home/priit/Desktop/pildid/55555.png /home/priit/Desktop/pildid/jpg.jpg