Locate: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''WORK STILL IN PROGRESS'''
==Autor==
==Autor==
Priit P.
Priit P.
Line 6: Line 4:
Rühm A21
Rühm A21


2*.11.2015
30.11.2015


==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 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 automaatselt - 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 ning 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 on locate Linuxi distributsioonide tarkvara repositooriumites olemas ning paketi nimetus ongi "locate".
Üldjuhul eksisteerib locate Linuxi distributsioonide tarkvara repositooriumites nime all "locate".


Locate vajab tavakasutaja- ja updatedb juurkasutaja õigusi.
<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===  
Kokkuvõtlikult:<ref name="die"></ref>
Lühidalt:<ref name="die"></ref>
<pre>locate [ARGUMENDID]... OTSINGUTERMIN...</pre>
 
<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====
'''-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 64: Line 64:
'''-L, --follow''' - failide olemasolu testimisel (kasutades -e või -E argumenti) liigitab symlinkid mitte-eksisteerivateks. See on vaikimisi valik.
'''-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, et andmebaas on vanem kui 8 päeva. Antud argumendiga on võimalik seda hoiatusperioodi muuta.
'''--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.
'''-m, --mmap''' - eksisteerib üksnes BSD locate'i versiooniga ühilduvuse eesmärgil.
Line 80: Line 80:
'''--version''' - kuvab locate'i versiooniinfo.
'''--version''' - kuvab locate'i versiooniinfo.


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


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


===Näited===
===Näited===
<pre>locate KusKyll*
".jpg" faililaiendiga failide otsimine kataloogist ~/Pictures
/home/priit/Desktop/KusKyllOnSeeFail</pre>
 
<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>
 
 
Sõna "foto" sisaldavate failide- või kaustade otsimine arvestamata tõusutundlikkust:
 
<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>


<pre>locate Otsi*
Argumentide -b ja -w võrdlus:
/home/priit/OtsinJaOtsin
/home/priit/OtsinJaOtsin/LeitudKaust
/home/priit/OtsitavKaust
/home/priit/OtsitavKaust/JaAlam
</pre>


<pre>locate -w /*Kaust
<code>locate -b cowsay</code>
/home/priit/OtsinJaOtsin/LeitudKaust
<pre>/usr/games/cowsay
/home/priit/OtsitavKaust
/usr/share/cowsay
</pre>
/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
...</pre>


<pre>locate *solv.conf
/etc/resolv.conf
</pre>


<code>locate -w cowsay</code>
<pre>/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
...</pre>


==Kokkuvõte==
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 20: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