Portál AbcLinuxu, 7. května 2025 17:12

Dotaz: Jak na Linuxu vyhledavate

polo23 avatar 9.10.2011 16:55 polo23 | skóre: 28 | blog: polo23
Jak na Linuxu vyhledavate
Přečteno: 598×
Odpovědět | Admin
Ahoj,
chtel jsem se zpetat jaky program pouzivate na Linuxu na vyhledavani. Zajimaji me jen CLI app. Narazil jsem ted na problem... Pouzivam locate, ale zjistil jsem, ze nema zadny parametr jak mu vnutit, aby vyhledaval na disku jez bych chtel specifikovat. Napr. kdyz pripojim ext. disk.
Diky za napady.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.10.2011 17:34 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Odpovědět | | Sbalit | Link | Blokovat | Admin

man find

Aleš Janda avatar 9.10.2011 20:01 Aleš Janda | skóre: 23 | blog: kýblův blog | Praha
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Odpovědět | | Sbalit | Link | Blokovat | Admin
Locate hlavně nevyhledává nic na disku, jen se dívá do své předindexované databáze souborů (pomocí updatedb). Takže pokud do počítače strčíš externí disk a nenecháš databázi přeindexovat/nepřeindexuje se, tak v databázi není.
Zahrajte si trojšachy přes internet :-)
polo23 avatar 9.10.2011 20:55 polo23 | skóre: 28 | blog: polo23
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Diky,
jak to funguje to vim, taky me to mohlo napadnout, ze tam mam nechat ext disk a nechat to preindexovat. Akorat teda nevim co se stane kdyz zaindexuje neco z ext disku a ten pak vytahnu. Teoreticky je mozne najit soubor, ktery vlastne momentalne "neexistuje".
polo23 avatar 9.10.2011 21:00 polo23 | skóre: 28 | blog: polo23
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
... tak ted jsme to zkousel a nefunguje to. Namountoval jsme ext disk, spustil reindex a zkusil vyhledavani. Najde to jen co je na local disku.
Řešení 1× (polo23 (tazatel))
9.10.2011 21:15 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Najde to jen co je na local disku.

Nájde to čo, mu nekáže /etc/updatedb.conf vynechať. (A k čomu máš prístupové práva).
polo23 avatar 9.10.2011 21:18 polo23 | skóre: 28 | blog: polo23
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Diky, prave jsme na to taky prisel:)
10.10.2011 15:34 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate

ty vole ta ciarka pred "mu" ma inak zmiatla:))  som tu vetu cital hadam 8 krat:)))

D.

pepe_ avatar 9.10.2011 20:23 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak treba kdyz potrebuju najitsoubor vetsi nez 10Mega ve slozce /home/pepe/pracovni  a jejich podslozkach rekruzivne s nazvem obsahujici uprostred slovo desktop , pouzivam :

find /home/pepe/pracovni/ -type f -size +10M -print0 | xargs -0 du -h | awk -F"\t" '{printf "%s : %s\n", $1, $2}' | grep 'desktop'

9.10.2011 20:50 Kit
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Proč tak složitě?
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*'
pepe_ avatar 9.10.2011 21:13 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate

protože tam chci údaj jak je ten soubor velkej  a někdy tam ještě dodam údaj o datumu a času.

9.10.2011 21:45 Kit
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
No dobrá, ale stále to vychází lépe (a je i rychlejší) bez toho grepu:
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -print0 | xargs -0 du -h
nebo
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -print0 | xargs -0 du -h |
   awk -F"\t" '{printf "%s : %s\n", $1, $2}'
9.10.2011 21:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
A nestačilo by:
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -printf '%P %s\n'
nebo
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -printf '%P %s %AF %AH:%AM\n'
a já používám někdy:
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -exec ls -lh {} \;
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
9.10.2011 22:16 Kit
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
No vida, ještě že jsem se do té debaty pustil. O -printf jsem netušil, i když se jeho existence dala předvídat. Jen ten název souboru bych dal raději až na konec kvůli přehlednosti:
find /home/pepe/pracovni/ -type f -size +10M -iname '*desktop*' -printf '%s\t%AF %AH:%AM\t%P\n'
10.10.2011 09:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
No zrovna find má roj možností, ale kdo si to má pamatovat, proto obvykle na zobrazení či mazání apod. raději použíji -exec + příkaz, to je furt stejné :-).
A například na Debianu Lenny-m (i v OpenSuse 11.1) v man-u se nic nepíše o %AF a funguje to (asi tam lze použít vše z příkazu date).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.10.2011 11:24 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Nevím, jestli se v tom -exec nemusí řešit neobvyklé názvy souborů. Takové věci se pracně ošetřují a testují. Pro mazání bych určitě raději použil -delete, kde bych čekal, že s tím problém nebude, ideálně předáváním file descriptoru (to konkrétně nevím, střílím od boku).
10.10.2011 15:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Ano, je třeba si na to dát majzla (nebo respektive si na to majzla dávám a ani nevím jestli je to třeba). Má nejobvyklejší aplikace -exec a rm je, že mi dojde echo, že uživatelé uložili „zlé win“ soubory (exe, js, atd.) a já si prohledám sdílené složky, zjistím co to je, někdy odsunu, a pak mažu, takže soubory si nejprve vylistuji a obvykle s Win přes SAMBA-u nelze uložit „zlobivý“ název souboru. A prostě mi připadá snazší jen přepsat ten příkaz, než měnit syntaxi „předchozího hledacího-zobrazovacího“ find-u.
Ve scriptu užítí … -exec rm -rf {} \; možná může mít zajímavé důsledky :-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.10.2011 16:47 l4m4
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Jelikož vypisovací akce vracejí True, tak není nic snažšího než za -print(f) dopsat -delete a ono to vypíše i smaže ;)
10.10.2011 17:20 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
A to je přesně důvod, proč to raději nepoužívám.
9.10.2011 21:57 l4m4
Rozbalit Rozbalit vše Re: Jak na Linuxu vyhledavate
Od toho snad má find akci -printf.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.