Über basit ve hızlı dosya arama, sadece 2 satır kodla

07.02.2005

Okuyucu : 3.432
Günlük Okuyucu : 2,9

Bu kadar salak şeyleri nasıl bulduğumu bende bilmiyorum...

Desktop Search uygulamaları (copernic, msn, google desktop vs.) aslında arama çözümlerimize yeni bir soluk getirdi ancak kendi ciddi salaklıklarını da içeriyorlar. Oluşturdukları indexlerin içerisine exe adlarını, tanınmayan dosyaları ve klasörleri eklemeyerek aslında arama sorununa tam bir çözüm getiremiyorlar.

Evet bilgisayarımdaki dokümanların içerisinde arama yapabiliyorum, ancak basit bir klasörün yerini bulmak için GB' lar arasında dakikalar süren bir serüvene başlamak ve aynı zamanda HDD mi ve CPU' umu (ki ikisini de çok severim) bu iş ile meşgul etmek zorundayım.

OK sistem gayet basit, Konsoldayken;

  1. Index oluşturalım (3-5 dk. sn.)
    dir c:\ /S /B > c:\index.txt
    dir d:\ /S /B >> c:\index.txt

    ... (partitionınız kadar bu işlemi yapın)

    Farkındaysanız birinci seferinde tek yönlendirme ">" diğerlerinde ise ">>" çift kullanıyorum. Yani ilk seferinde tüm dizin yapısını index.txt ye yazarken ikincisinde eski datayı silmeden ona ekleme (append) yapıyor.
  2. Şimdi bu dosyayı favori text editörünüzde (umarım bu notepad değildir, çünkü text boyutu yüksek olacaktır) açın ve arama yapın (1 sn.)

Index oluştuktan sonra güncellenmeyen bir data içerisinde 1sn. gibi sürelerde arama yapabilirsiniz. Bu hakikaten saçma oldu ama olsun çok eğlenceli.

Yaptığım testlerde çok az CPU kullanımı ile 100.000 dosya 3dk. gibi bir sürede indexlendi. Aramalar max. 1 sn. neredeyse sıfır CPU kullanımı ile gerçekleşiyor. Sonuç olarak windows' un varsayılan aramasından çok daha iyi bir sonuç elde ediyorsunuz. Ek olarak eğer kullandığınız text editör (mesela edit+) RegEx vs. destekliyorsa çok daha gelişmiş yeni arama fonksiyonlarına da kavuşmuş oluyorsunuz.

Indexleme işlemleri için şu batch dosyasını kullanabilirsiniz, tabii ki kendi partition listenizi girmeniz gerekiyor.

REM index.bat
@echo off

echo Indexing...

SET index=c:\index.txt

dir c:\ /S /B > %index%
echo .

dir d:\ /S /B >> %index%
echo .

dir f:\ /S /B >> %index%
echo .

echo Done !
pause


Herhangi bir klasöre index.bat ismi ile kaydedip çift tıklayın c:\index.txt dosyasını oluşturacaktır, işlem süresi 3-5 dk. sürebilir. Son olarak yarıda kesmek için Ctrl+C ya da Ctrl+Break i kullanabilirsiniz.

Yorumlar

RSS Bu makalenin yorumlarını RSS ile takip et!

sabit diskimdeki bir dosyayi aramak için kullandigim bir program var.Avafind http://www.think-less-do-more.com/avafind/

tahmin ediyorumki bu programin mantigi tam olarak sizin yaptiginiz is ile ayni.
Fakat avafind sürekli degisiklikleri kontrol ederk olusturdugu index dosyasini güncel tutuyor.

ben çok memnunum.1 aylik deneme süresinden sonra bazi özellikleri kisitlaniyor ama kullanmaya devam ediyorsunuz.

Herkese tavsiye ederim.

burak inner [ # | 08.02.2005 ]

eheh iyi fikir ama zaten linuxta kullaniliyor bu yillardir. updatedb ile diskimizi indexliyor, "locate osman" ile de osman'i aratiyoruz.

glitch [ # | 08.02.2005 ]

updatedb' yi öğrendiğimiz iyi oldu, Cygwin' de şu şekilde çalıştırılabiliyormuş önce manual eklemek gerekiyor. http://www.gdargaud.net/Hack/Windows.html
Bu da windows için locate32 tool; http://www.uku.fi/%7Ejmhuttun/english/softwares.shtml

Ferruh Mavituna [ # | 08.02.2005 ]

zeki bir çözüm
istediğin sonucu alabildiğin her edevat amacın için üretilmiştir ;)

Taci TIRSAK [ # | 08.02.2005 ]

eheh iyi fikir ama zaten linuxta kullaniliyor bu yillardir. updatedb ile diskimizi indexliyor, "locate osman" ile de osman'i aratiyoruz.

wc ile de satırları sayabiliyoruz ama oturup program yazıyorlar.
cygwin kullanmak bu kadar mı zor ya?..

[ # | 08.02.2005 ]

Satır saymak için kim program yazar? Hiç olmadı açar herhangi bir text editörle bakarsın, Biz yazdık line counter ( http://sourceforge.net/projects/lcounter/ ) ama bunun esas amacı source kod sayma, html, js ayırma, commentları ve boş satırları iptal etme vs.

Ferruh Mavituna [ # | 09.02.2005 ]

Aklın yolu bir.
Düşünen insanın ulaşacağı yer Linux ilkeleri.

ali osman sonceker [ # | 09.02.2005 ]

Biz yazdık line counter ( [w] http://sourceforge.net/projects/lcounter/ ) ama bunun esas amacı source kod sayma, html, js ayırma, commentları ve boş satırları iptal etme vs.

o halde hem biraz wc hem de biraz regex bilgisi edinmeniz gerekiyor. basit bir örnek için bkz: http://members.tripod.com/vgoenka/unixscripts/slocc.sh.txt

[ # | 09.02.2005 ]

Ee bizde bu kadar kasana kadar bir defa kasıp adam gibi bir GUI ile program yazdık :)

Ferruh Mavituna [ # | 10.02.2005 ]

index.bat dosyasına bir de
start C:\index.txt
yazarsanız text dosyasını da bilgisayar açar.Eh, biraz daha tembellik yapabiliriz.

Cemil Cengiz [ # | 11.02.2005 ]

Ah hakikaten o da güzelmiş :)

Ferruh Mavituna [ # | 12.02.2005 ]

Yorum Ekle





Kullanılabilir Taglar : [<blockquote>] [<strong>] [<em>]

Über basit ve hızlı dosya arama, sadece 2 satır kodla ile İlişkili Olabilecek Yazılar - Haberler

Rgod
Hastası Olduğum Film Sahneleri
Hızlı ve Pis Virtual Domain Oluşturmaca
Kablosuz Klavye (Radyo Frekanslı) Sniffing
Underground Market

Diğer Yazılar

Neredeyim ?

Ferruh.Mavituna » Haberler » Über basit ve hızlı dosya arama, sadece 2 satır kodla

Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında