Alıntı:
HostBank´isimli üyeden Alıntı
locate komutu: Simdi daha genis kapsamli olan 'locate' komutundan bahsedelim. Turkce tam karsiligi
'konuslandirmak' olan bu komut aynen bunu gerceklestirir.
Kullanim sekli
root@danzka:~# locate aranan_kelime
olan bu komut dizin veya dosya adinda 'aranan_kelime' gecen her dizin ve dosyayi ekrana basar. Bu
yuzden ekran ciktisi buyuk ihtimalle cok uzun olacak olan bu komut 'more' komutuyla birlikte
kullanildiginda dikkatli bir inceleme ile bize aradigimiz bir dosyayi bulmakta cok yardimci
olabilecek bir komuttur.
root@danzka:~# locate aranan_kelime | more
Bu sekilde ekran ciktisi bir ekrani doldurup size <enter> (satir satir ilerleme) veya
<bosluk> (sayfa sayfa ilerleme) tuslarina basana kadar ekranda kalacaktir.
Tabi ki 'diskde_sadece_bir_tane_var.doc' gibi az rastlanacak bir dosya ararken sayfanin hizla akip
gitmesi gibi bir sey soz konusu degildir.
Bu komut ile * (asteriks) ve ? (soru isareti) gibi meta karakterleri kullanarak da dosya aramak
mumkundur.
Locate komutunun aradiginiz dosyayi hizla buldugunu farkedeceksiniz. Bu sabit diskinizin birden
bire daha hizli calismaya baslamasindan kaynaklanmiyor. Bu hizin arkasinda cok basit bir veritabani
prensibi yatar. 'locate' komutu ilk calistirildiginda sizden dosya isimlerini saklamak icin
kullanacagi veritabanini olusturmanizi isteyecektir. Veritabani olusturulma islemi sirasinda
sisteminizde o anda bulunan butun dosyalar indexlenip veritabani formatinda bir dosyaya
yazilacaktir. Bundan sonra yapacaginiz 'locate' sorgularinin hepsi diskten gercek zamanli bir arama
yaparak degil, bu indexlenmis veritabanindan yapilacaktir. Boylece olaganustu hizli bir sekilde
aradiginiz dosyaya ulasabileceksiniz.
Yanliz bu calisma prensibinde sizin de tahmin edebileceginiz bir acik bulunmaktadir. 'locate'
komutunun veritabaninda , bu veritabani ilk olusturulduktan sonra yaratilan dosyalar indexlenmemis
olacaktir. Ayni sekilde veritabani yaratildiktan sonra sistem'den silinen veya yeri degisen
dosyalar da halen sistemdeymis gibi gorunecektir.
Bu yuzden yanlis sonuclar almamak icin 'locate' veritabani periyodik olarak 'updatedb' komutu ile
guncellenmelidir. Bu cok zaman alan ve diski yavaslatan bir islem oldugundan 'cron' yardimi ile
sistemin az kullanildigi bir zamanda otomatik olarak yapilmalidir. |
işlem öncesinde locate -u çekmek gerekmez mi hocam ?