Gibt es eine schnelle Suchfunktion für Dateien?

Message
Author
der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Gibt es eine schnelle Suchfunktion für Dateien?

#1 Post by der-schutzhund »

Gibt es für Linux / Puppy ein Programm mit dem Dateien auf der Festplatte schneller gefunden werden als mit PFind?
Ich finde Pfind extrem langsam vergleichbar mit dem Dateiexplorer unter Windows.
Für Windows gibt es ein externes Programm Everything mit dem sich ganze Festplatten innerhalb weniger Sekunden bzw. sogar in Echtzeit durchsuchen lassen.
Der Unterschied ist wohl, dass Everything nicht jede Datei in jedem Verzeichnis durchsucht sondern nur den Master File Table (MTF) der gesamten Festplatte. Man kann dann zwar nur nach dem Dateinamen suchen aber das reicht in den meisten Fällen völlig aus!

Gibt es so etwas auch für Puppy?

LG

Wolfgang

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#2 Post by antilet »

Gibt es das in Puppy (Konsole):

Code: Select all

locate dateiname
EDIT: Man muss vorher allerdings die Datenbank, die locate nutzt ggf. aktualisieren...
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#3 Post by Karl Godt »

locate ist aber in Puppy IDR nicht standardmaessig beigefuegt .

Windows finde ich extrem langsam und verweigert mir Zugang zu manchen versteckten Ordnern .
Auf Windows benutze ich deshalb die Cygwin Linux Console mit find .
Cygwin ist das Gegenteil von Wine .

pfind nutzt "find" um Daten zu finden und "grep" um in Daten zu finden .

find ist das erste mal immer langsam. Beim zweiten mal werden RAM-Puffer des kernels genutzt und sind dann schneller .

Viel RAM fuer Winmurks und wenig RAM fuer Puppy -- SEHR FAIR !

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#4 Post by antilet »

Karl Godt wrote:pfind nutzt "find" um Daten zu finden und "grep" um in Daten zu finden
Macht pfind immer beides? Dann sollte find auf der Konsole ja schon einen ordentlichen Schub bringen.
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#5 Post by Karl Godt »

antilet wrote:
Karl Godt wrote:pfind nutzt "find" um Daten zu finden und "grep" um in Daten zu finden
Macht pfind immer beides? Dann sollte find auf der Konsole ja schon einen ordentlichen Schub bringen.
Weiss ich jetzt gar nicht.
pfind nutzt pfilesearch , und das bemerkt man oft gar nicht.

Puppy GUIs sind immer ein bisschen buggig :mrgreen: - also 'reingucken und die Knarre Ratschenschluessel mit 'nen paar Nuessen hervorgezaubert ..

( Benutze GUIs und pfind und zigberts code ungern - ausser pburn )
Aber dass habe ich jetzt nicht gesagt :wink:

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#6 Post by der-schutzhund »

Habe find getestet und finde es sehr langsam.
Wenn ich es richtig nachgelesen habe durchsucht es nur einzelne Verzeichnisse und nicht eine ganze Festplatte.
Ist also eher nicht so toll!

den Befehl locate kennt mein Lucid nicht.
Gibt es locate vielleicht zum Nachrüsten mit einer Gui?

Oder gibt es noch ein anderes wirklich schnelles Suchprogramm?

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#7 Post by RSH »

den Befehl locate kennt mein Lucid nicht.
:idea:
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
chef
Posts: 76
Joined: Tue 18 Jun 2013, 15:17
Contact:

#8 Post by chef »

Ich habe mal die find-doku gelesen

Code: Select all

https://help.ubuntu.com/community/find
also

Code: Select all

find / -iname *suchmich*
durchsucht doch die ganze Festplatte. Und ich fand es recht fix.

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#9 Post by Karl Godt »

http://packages.ubuntu.com/search?keywords=locate

Aber das kostet jetzt einen Ein-Jahres-Vertag mit dem Ober-Recktor Deiner Schule, Schutzhund ! :mrgreen:

Endich gibts 'mal mehr als Harztz4 !!

Zwei Tage und schon 30 Euro ausgegben !!



find findet alles, was gemountet ist . Wenn 50x20GiB-Partitionen auf der Festplatte rumschwirren ..

Weiter gibt es wohl alle Moeglichen *SQL* Datei-Fundamente ..

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#10 Post by RSH »

Karl Godt wrote:Endich gibts 'mal mehr als Harztz4 !!
Hm, und ich dachte immer, die (leider) in diese Kategorie "fallenden" Menschen bekämen ALGII (Arbeitslosengeld II) und 'Hartz' 1-4 wären die zugehörigen Gesetze, die "Putins liebster, deutscher Freund" zusammen mit dem "Brasilianische-Nutten-Ficker" vom "Hitler-Auto-Konzern" entwickelt und installiert hat?

Muß ich wohl 'was verpaßt, falsch verstanden oder schlicht ein Bier zuwenig getrunken haben...

By the way: find ist recht schnell auf Festplatten mit wenig Inhalt oder im Dateisystem des laufenden Puppy. Auf einer 1 TB Platte mit nur noch 70 GB freiem Speicherplatz ist es aber definitv NICHT zu gebrauchen. Da kann man locker anfangen ein Mahl zuzubereiten und auch noch zu sich zu nehmen!
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
chef
Posts: 76
Joined: Tue 18 Jun 2013, 15:17
Contact:

#11 Post by chef »

Hai, also ich habe hier 1TB Festplatte die zur Hälfte voll ist und die Suche ist genauso schnell. Vielleicht liegt es ja an was anderem?

Zieh doch mal einen Geschwindigkeitsvergleich mit einem anderen Computer oder einem anderen Betriebssystem oder einer anderen Festplatte.
Vielleicht bringt das Licht ins dunkel?

Code: Select all

#!/bin/sh
startzeit=`date +%s > messung.txt`
find /mnt/sdb1 -iname *gibts nicht*
endzeit=`date +%s >> messung.txt`
Vielleicht hilft hier ein Messscript. Ich habe das nur angerissen, sicher kannst Du das viel besser.
Gemessen wird die Suche nach einem Begriff, den es nicht gibt. Geht das unter einem anderen BS, oder einer anderen Festplatte schneller?

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

Messscript.

#12 Post by L18L »

Code: Select all

time find /mnt/sdb1 -iname *gibts nicht*
:wink:
Last edited by L18L on Fri 30 Aug 2013, 07:15, edited 1 time in total.

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#13 Post by antilet »

Locate ist in den Repositories für Ubuntu.
Kann man also problemlos nachinstallieren mit einem "nomalen" Ubuntu-Derivat. Wie es mit deinem speziellen Lucid ist, kann ich natürlich nicht sagen.

Aber Rainer hat diesbezüglich ja schon eine erhellende Antwort gegeben: :idea:
:D :D :D
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#14 Post by Karl Godt »

Man koennte zB eine find DatenBank aufbauen durch ein kleines Skript in /etc/init.d/ , welches die Datei find.db.text aufbaut beim Hochfahren :

bash-3.00# time find / >find.db.text

real 0m4.971s
user 0m0.583s
sys 0m4.306s

Dann scheint es doppelt so schnell , die gesuchte Datei aus der find.db.text-Datei zu greifen :

bash-3.00# time grep "*gibbes nisch*" find.db.text

real 0m1.854s
user 0m1.823s
sys 0m0.013s


INFO : Anstatt date nahm ich die bashseitig eingebaute time Funktion .
Packet coreutils muesste time auch als Binaer-Datei haben .

User avatar
chef
Posts: 76
Joined: Tue 18 Jun 2013, 15:17
Contact:

#15 Post by chef »

Hai Karl,

ist das denn alltagstauglich? Könnte man daraus eine neue Suchfunktion machen?

Oder dauert das beim booten zu lange?

Oder war das nur ein Spruch?

Ich werde mich mal mit der Idee beschäftigen ... wollen doch mal sehen.

20 Minuten später ...


Also, die ersten Tests sind abgeschlossen. Das suchen muß nicht beim booten passieren.

Im Startup Ordner läuft das auch und man bekommt nicht mal was davon mit.

Code: Select all

cd /
find / -iname '*' > /find.db
Die Datei ist am ende nicht so groß.

Die Idee scheint gut zu sein. Oder?

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#16 Post by Karl Godt »

Weiss ich jetzt nicht .. Meine find.db.text ist

bash-3.00# wc -l find.db.text
403818 find.db.text

~400.000 Zeilen lang ..

bash-3.00# ls -s --block-size=K find.db.text
21352K find.db.text
bash-3.00# ls -s --block-size=M find.db.text
21M find.db.text

*
Das hier ist nun mlocate :
http://packages.debian.org/source/sid/mlocate
Kompilliert gut auf meiner Puppy-4 , einfach

Code: Select all

./configure ; make ; new2dir make install ; addgroup -S -g 2120 mlocate ; updatedb ; locate -i -e "*locate*"
in der Sossen-Kanne .. sehr sehr fix !

Bierher-Dateien sind aber benannt " locate " und " updatedb " und nicht " mlocate " und " mupdatedb " -- also aufgepasst , solte etwas (nicht) ueberschrieben werden .

ls -s --block-size=M /usr/local/var/mlocate/mlocate.db
8M /usr/local/var/mlocate/mlocate.db

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#17 Post by Karl Godt »

Man kann die DateienBasis .db. Datei auch komprimieren :

Code: Select all

cp find.db.text find.db.text.compressed
bzip2 find.db.text.compressed
ls -s --block-size=M find.db.text.compressed.bz2
ist dann nur
2M find.db.text.compressed.bz2
anstatt von 21M = 10% !

time grep "geany" find.db.text
dauert bei mir
real 0m2.669s
user 0m2.453s
sys 0m0.023s

und
time bzcat find.db.text.compressed.bz2 | grep -i "geany"
real 0m3.851s
user 0m3.660s
sys 0m0.057s

also nur bash-3.00# echo $((3851*100/2669))
144 -> 44% langsamer

Aber
time locate -i "geany"
real 0m0.739s
user 0m0.680s
sys 0m0.013s

bash-3.00# echo $((739*100/2669))
27 -> 73% schneller

schlaegt grep ganz schoen in einer Welt, in der die Almdudler-Abfahrt im 1000stel Sekunden Bruchteil gewonnen wird .

http://packages.debian.org/sid/doodle
braucht lieb-extractor und die ist mir mit 7-8MB fuer heute zuviel bei meiner Bandbreiten-SchnappsDrosselung : GRINS :

User avatar
Bert
Posts: 1103
Joined: Fri 30 Jun 2006, 20:09

#18 Post by Bert »

Hallo,

Es gibt auch Bulldog Finder 3.4 durch Don570.

Klein (11.47KB Pet) und schnell.
Vielleicht ist das auch eine Möglichkeit?
[url=http://pupsearch.weebly.com/][img]http://pupsearch.weebly.com/uploads/7/4/6/4/7464374/125791.gif[/img][/url]
[url=https://startpage.com/do/search?q=host%3Awww.murga-linux.com%2F][img]http://i.imgur.com/XJ9Tqc7.png[/img][/url]

User avatar
chef
Posts: 76
Joined: Tue 18 Jun 2013, 15:17
Contact:

#19 Post by chef »

Hai Bert, den Bulldogfinder schaue ich mir an, aber gerade lässt mich ein Gedanke nicht los.

Also, ich habe den Ansatz nochmal geändert. Jetzt wird die Datenbank erstellt, während der User noch eingibt. Die Zeit reicht, glaube ich. damit hätte man dann auch immer aktuelle Dateilisten.
#!/bin/sh
cd /root/suchen
find / -iname '*' > find.db &

GTKDIALOG=gtkdialog
export MAIN_DIALOG='
<window title="Suchwort eingeben" resizable="false">
<frame suche nach>
<vbox>
<hbox>
<text><label> .</label></text>
<entry><variable>willi</variable></entry>
</hbox>
<hbox>
<button></button>
</hbox>
</vbox>
</frame>
</window>
'
gtkdialog -p MAIN_DIALOG
Bis jetzt alles nur ein Ansatz, aber vielversprechend?

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#20 Post by der-schutzhund »

Hallo zusammen,

habe eben mal mit "Suche Everything" unter XP meine Festplatte gescannt.
Die Festplatte im Notebook ist ca. 180GB groß und ca. 15GB sind noch frei. Es sind drei NTFS-Partitionen eingerichtet die beim Start von "Suche Everything" einmal in eine Datenbank gescannt werden.
Das dauert 30 Sek.
Danach können Teile des Dateinamens in ein Suchfeld eingegeben werden und die Anzeige der Ergebnisse erfolgt dann in Echtzeit!

Bulldogfinder habe ich getestet. Ist nicht viel schneller als PFind!

Der springende Punkt ist, dass nicht die Verzeichnisse der Reihe nach Dateien durchsucht werden sondern eben der Master File Table (MTF) der Festplatte!
Das dann in eine eigene Datenbank und fertig.

Hier gibt es ja auch schon ein paar tolle Ansätze! Bin mir fast sicher, dass am Ende eine schnellere Suchfunktion steht als dies mit PFind möglich ist.

LG

Wolfgang

Post Reply