Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Fri 31 Oct 2014, 11:59
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Für deutschsprachige Anhänger
Gibt es eine schnelle Suchfunktion für Dateien?
Moderators: MU
Post new topic   Reply to topic View previous topic :: View next topic
Page 2 of 3 [38 Posts]   Goto page: Previous 1, 2, 3 Next
Author Message
Karl Godt


Joined: 20 Jun 2010
Posts: 3972
Location: Kiel,Germany

PostPosted: Fri 30 Aug 2013, 06:07    Post subject:  

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:
./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
Back to top
View user's profile Send private message Visit poster's website 
Karl Godt


Joined: 20 Jun 2010
Posts: 3972
Location: Kiel,Germany

PostPosted: Fri 30 Aug 2013, 06:46    Post subject:  

Man kann die DateienBasis .db. Datei auch komprimieren :

Code:
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 :
Back to top
View user's profile Send private message Visit poster's website 
Bert


Joined: 30 Jun 2006
Posts: 956

PostPosted: Fri 30 Aug 2013, 07:42    Post subject:  

Hallo,

Es gibt auch Bulldog Finder 3.4 durch Don570.

Klein (11.47KB Pet) und schnell.
Vielleicht ist das auch eine Möglichkeit?

_________________


Back to top
View user's profile Send private message 
chef


Joined: 18 Jun 2013
Posts: 76

PostPosted: Fri 30 Aug 2013, 09:31    Post subject:  

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.

Quote:
#!/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?
Back to top
View user's profile Send private message Visit poster's website 
der-schutzhund

Joined: 26 Nov 2007
Posts: 781
Location: Blomberg / Germany

PostPosted: Fri 30 Aug 2013, 12:25    Post subject:  

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
Back to top
View user's profile Send private message 
chef


Joined: 18 Jun 2013
Posts: 76

PostPosted: Sat 31 Aug 2013, 02:49    Post subject:  

Also ich habe noch mal einen Ansatz mit Gambas gemacht. Das ganze basiert immer noch auf find, aber dieses mal wieder ohne eine Datenbank zu machen.

Ich habe mir den Quellcode von pfind mal angesehen. Sie verlieren viel Zeit mit dem zwischenspeichern der Dateien und GTK frisst wohl auch noch mal ein wenig davon.
Aber das geht wohl nicht anders, wenn man Shell-Script nutzt.

Man könnte die gesamte Suchfunktion in Variablen (statt in Textdateien) legen.
Aber viel schneller wird das nicht mehr.

Aber das offizielle Interesse daran ist vorbei oder?

Für die gambas Datei braucht man wieder die gambas3-runtime.
suchdas.tar.gz
Description  Ansatz für eine Suchfunktion mit Gambas. Taugt das was?

Die gambas3-runtime muß installiert sein.
gz

 Download 
Filename  suchdas.tar.gz 
Filesize  1.77 KB 
Downloaded  172 Time(s) 
Back to top
View user's profile Send private message Visit poster's website 
der-schutzhund

Joined: 26 Nov 2007
Posts: 781
Location: Blomberg / Germany

PostPosted: Sat 31 Aug 2013, 08:32    Post subject:  

Weiß jemand wie man die Dateinamen aus dem Master File Table (MTF) lesen kann?

Hinweis:
An Stelle von Gambas würde ich grundsätzlich PureBasic verwenden!
Die erzeugten Programme sind auch wirkliche Programme und benötigen keine Laufzeitumgebung. Sie sind schneller und unter dem Strick viel kleiner!
Back to top
View user's profile Send private message 
RSH


Joined: 05 Sep 2011
Posts: 2420
Location: Germany

PostPosted: Sat 31 Aug 2013, 09:33    Post subject:  

Quote:
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?

Na ja, ich denke meine Angabe war ein wenig ungenau, da Plattenkapazität und verbleibender freier Speicher für sich alleine genommen eher wenig Aussagekraft haben.

Es kommt maßgeblich darauf an, aus wieviel Dateien der belegte Speicherplatz besteht.

Ich habe hier: 858 G (1.345.703 Dateien, 156.406 Ordner).

Was hast Du?

RSH

_________________
LazY Puppy
RSH's DNA
SARA B.
Back to top
View user's profile Send private message 
chef


Joined: 18 Jun 2013
Posts: 76

PostPosted: Sat 31 Aug 2013, 12:11    Post subject:  

So, hier habe ich mal zusammengesucht was ich weiß. Allerdings weiß ich garnicht, wie man die Anzahl der Ordner ermittelt.

Also die Suche mit:

Code:
find /mnt/sdb1/ -iname '*'


ergab:

Code:
Dateienanzahl: 74330


Die Suche dauerte:
Code:
real   0m7.302s
user   0m0.753s
sys   0m1.473s


Mit Gparted habe ich das hier bekommen:
Code:
Festplattengröße: 931,5 GB
Benutzt: 472.43 GB
Unbenutzt: 459.08 GB
Dateisystem: ntfs


Das sind natürlich heftige Unterschiede. Hast du recht. Ich habe mich da wohl ein wenig hinreißen lassen. Embarassed

Ja, damit bin ich raus, dann habe ich keine Ahnung.

___________________________________________


Das Purebasic hatte ich damals mal probiert, aber ich kam schwer damit zurecht. Es gabe viele undurchsichtige Meldungen. Das lag vielleicht daran, dass es eine Demoversion war? Oder das ich keinen Schimmer habe. Ich kenne Basic auch kaum bis garnicht.
Irgendwas war auch mit dem Purebasic Forum. Alles zusammen, habe ich dann alles in der Richtung verworfen.

Mit Gambas wurde vieles einfacher. Ich bin immer noch ein Anfänger und froh, dass die Dinge immer besser laufen. Die Hilfe ist fantastisch und verständlich.

Na ja, und letztlich werde ich kaum die Programme verkaufen oder irgendwie weitergeben. Ich wünschte mir nur mal, dass einer die Sachen mal testet. Damit ich hier mal über meinen Tellerrand gucken kann.
Back to top
View user's profile Send private message Visit poster's website 
antilet

Joined: 17 Aug 2012
Posts: 169

PostPosted: Sat 31 Aug 2013, 15:41    Post subject:  

der-schutzhund wrote:
Weiß jemand wie man die Dateinamen aus dem Master File Table (MTF) lesen kann?
Ich meine den gibt es so gar nicht in Linux. In den Inodes stehen zwar einige Dateieigenschaften, aber nicht der Dateiname. Da eine Datei via Hardlink auch mehrere verschiedene Namen haben kann...
_________________
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

Back to top
View user's profile Send private message 
der-schutzhund

Joined: 26 Nov 2007
Posts: 781
Location: Blomberg / Germany

PostPosted: Sat 31 Aug 2013, 16:14    Post subject:  

antilet wrote:
der-schutzhund wrote:
Weiß jemand wie man die Dateinamen aus dem Master File Table (MTF) lesen kann?
Ich meine den gibt es so gar nicht in Linux. In den Inodes stehen zwar einige Dateieigenschaften, aber nicht der Dateiname. Da eine Datei via Hardlink auch mehrere verschiedene Namen haben kann...

Der Master File Table ist der Speicherbereich auf einer NTFS-Partition in dem alle Infos der Dateien stehen. Die stehen da, egal ob man aus Windows oder Linux oder sonst einem Betriebssystem darauf zu greift!
Back to top
View user's profile Send private message 
der-schutzhund

Joined: 26 Nov 2007
Posts: 781
Location: Blomberg / Germany

PostPosted: Sat 31 Aug 2013, 17:07    Post subject:  

Karl Godt wrote:
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:
./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


Bekomme es nicht kompiliert!
Kannst du mal das pet hochladen ... bitte?

LG

Wolfgang
Back to top
View user's profile Send private message 
antilet

Joined: 17 Aug 2012
Posts: 169

PostPosted: Sun 01 Sep 2013, 04:50    Post subject:  

der-schutzhund wrote:

Der Master File Table ist der Speicherbereich auf einer NTFS-Partition in dem alle Infos der Dateien stehen. Die stehen da, egal ob man aus Windows oder Linux oder sonst einem Betriebssystem darauf zu greift!
Hattest du das irgendwo geschrieben, dass du auf einer NTFS-Partition suchen willst, dann habe ich es überlesen - bei Linux gehe ich zumindest von ext aus...
_________________
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

Back to top
View user's profile Send private message 
der-schutzhund

Joined: 26 Nov 2007
Posts: 781
Location: Blomberg / Germany

PostPosted: Sun 01 Sep 2013, 04:58    Post subject:  

Quote:
Hattest du das irgendwo geschrieben, dass du auf einer NTFS-Partition suchen willst, dann habe ich es überlesen - bei Linux gehe ich zumindest von ext aus...

Ja, ein paar Beiträge weiter oben!
Back to top
View user's profile Send private message 
antilet

Joined: 17 Aug 2012
Posts: 169

PostPosted: Tue 03 Sep 2013, 03:52    Post subject:  

der-schutzhund wrote:
Ja, ein paar Beiträge weiter oben!
Hm, vielleicht habe ich Tomaten auf den Augen, ich sehe nicht wo du geschrieben hast, dass du unter NTFS suchen willst. Du hast allerdings viele Vergleiche zu NTFS gezogen. Ich war davon ausgegangen, dass du etwas vergelichbares wie du für Win hast nun auch für Linux suchst.
Wie dem auch sei. Ich glaube nicht, dass es für Linux ein Suchtool gibt, dass auf das Suchen in NTFS-Verzeichnissen spezialisert ist.
Cached (p)find Informationen? Wenn ja wo?

der-schutzhund wrote:
Bekomme es nicht kompiliert!
Kann man es nicht aus den deb-Repository laden und dann mit deb2pet in ein pet oder sfs konvertieren?
_________________
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

Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 2 of 3 [38 Posts]   Goto page: Previous 1, 2, 3 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars ) » Für deutschsprachige Anhänger
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1014s ][ Queries: 13 (0.0055s) ][ GZIP on ]