Locate: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ppennula (talk | contribs)
No edit summary
Ppennula (talk | contribs)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Autor==
==Autor==
Priit Pennula
Priit P.


Rühm A21
Rühm A21
Line 7: Line 7:


==Sissejuhatus==
==Sissejuhatus==
'''locate''' on programm UNIXile ja UNIXi-laadsetele operatsioonisüsteemidele, mis võimaldab otsida faile nende nime alusel.<ref name="locateman">[http://man7.org/linux/man-pages/man1/locate.1.html  locate(1) - Linux manual page]</ref>
'''locate''' on programm UNIXile ja UNIXi-laadsetele operatsioonisüsteemidele, mis võimaldab otsida faile ja kaustu nende nime alusel.<ref name="locateman">[http://man7.org/linux/man-pages/man1/locate.1.html  locate(1) - Linux manual page]</ref>


Windows operatsioonisüsteemide perekonnale on saadaval locate'i alternatiiv programmi Locate32 näol.<ref>[http://locate32.cogit.net/  Locate32]</ref>
Windows operatsioonisüsteemide perekonnale on saadaval locate'i alternatiiv programmi Locate32 näol.<ref>[http://locate32.cogit.net/  Locate32]</ref>


==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 <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>
locate võrdleb antud argumenti (s.t otsitavat failinime või selle osa - metasümbolite või regulaaravaldise abiga) spetsiaalse andmebaasi sissekannetega.<ref name="locateman"></ref> Nimetatud andmebaasi on kantud failide nimed ja nende asukohad. Sissekannete uuendamine toimub käsitsi, kasutades 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 muudatusi - veel baasi kandmata või vahepeal kustatud faile.<ref>[http://www.linfo.org/locate.html The locate Command]</ref>


==Kasutamine==
==Kasutamine==


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


<code>locate</code> töötab tavakasutaja- ning <code>updatedb</code> juurkasutaja õigustes.
<code>locate</code> toimib 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.
--regex atribuudita käsku või metasümboliteta otsinguterminit tõlgendatakse kui *otsingutermin*, s.t kummalgi pool otsinguterminit võib olla mistahes info.<ref name=die>[http://linux.die.net/man/1/locate locate(1) - Linux man page]</ref>
--regex atribuudita käsku või metasümboliteta otsinguterminit tõlgendatakse kui *otsingutermin*, s.t kummalgi pool otsinguterminit võib olla mistahes muu info.<ref name=die>[http://linux.die.net/man/1/locate locate(1) - Linux man page]</ref>


===Käsuformaat===  
===Käsuformaat===  
Line 42: Line 42:


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


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


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


'''-c, --count''' - kuvab üksnes otsingu tulemusena leitud failinimede hulga.
'''-c, --count''' - kuvab otsingu tulemusena leitud failinimede hulga.


'''-d path, --database=path''' - võimaldab valida alternatiivseid andmebaase, kus ''path'' on andmebaasi asukoht.
'''-d path, --database=path''' - võimaldab valida alternatiivseid andmebaase, kus ''path'' on andmebaasi asukoht.
Line 80: Line 80:
'''--version''' - kuvab locate'i versiooniinfo.
'''--version''' - kuvab locate'i versiooniinfo.


'''-w, --wholename''' - võrdleb mustriga andmebaasis olevat täispikka failinime. See on vaikimisi valik.
'''-w, --wholename''' - võrdleb otsinguterminiga andmebaasikande mistahes osa. See on vaikimisi valik.


<ref name="locateman"></ref>
<ref name="locateman"></ref>


===Näited===
===Näited===
Otsime faile nimetuse algusega "kaust" tõusutundlikkust arvestamata:
".jpg" faililaiendiga failide otsimine kataloogist ~/Pictures


<code>locate -ib kaust*</code>
<code>locate ~/Pictures/*.jpg</code>
<pre>/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</pre>


Tulemus:
<pre>/home/priit/Desktop/kaustSUUR
/home/priit/Desktop/kaustSUUR/KaUstpisike</pre>


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


Otsime kataloogist ~/Desktop/pildid png-faililaiendiga faile:
<code>locate -bi foto</code>
<pre>/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</pre>


<code>locate ~/Desktop/pildid/*.png</code>
Argumentide -b ja -w võrdlus:


Tulemus:
<code>locate -b cowsay</code>
<pre>/home/priit/Desktop/pildid/1.png
<pre>/usr/games/cowsay
/home/priit/Desktop/pildid/3.png
/usr/share/cowsay
/home/priit/Desktop/pildid/555554.png
/usr/share/doc/cowsay
/home/priit/Desktop/pildid/55555.png</pre>
/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
...</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 -w cowsay</code>
 
<pre>/usr/games/cowsay
<code>locate -E pildid</code>
/usr/share/cowsay
 
/usr/share/cowsay/cows
Tulemus:
/usr/share/cowsay/cows/apt.cow
<pre>/home/priit/Desktop/pildid
/usr/share/cowsay/cows/beavis.zen.cow
/home/priit/Desktop/pildid/1.png
/usr/share/cowsay/cows/bong.cow
/home/priit/Desktop/pildid/3.png
...</pre>
/home/priit/Desktop/pildid/555554.png
/home/priit/Desktop/pildid/55555.png
/home/priit/Desktop/pildid/jpg.jpg</pre>


==Kokkuvõte==
==Kokkuvõte==
Locate on lihtne ja kiire viis leidmaks failide asukohti, kuid ilma regulaaravaldisi oskamata võib selle käskluse efektiivne rakendamine osutuda vähemtulemuslikuks.
Locate on lihtne ja kiire viis leidmaks failide asukohti, mille võimekust on võimalik oluliselt laiendada kasutades otsinguterminis regulaaravaldisi.


==Kasutatud allikad==
==Kasutatud allikad==

Latest revision as of 19:24, 14 May 2016

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