locate komutu nedir?

Sistemde bir dosyanın nasıl aranacağını ve kendi oluşturduğunuz veya başka biri tarafından oluşturulmuş bir dosyayı bulamadığınız durumlarda bilmemiz çok yararlı olacaktır. Dosya aramanın kolay bir yolu locate komutu kullanmaktır.
locate kullanımı
Örneğin, aşağıdaki komutu çalıştırarak Music dizinin konumunu bulabilirsiniz. Tabi ki kendi kullanıcımız da olduğum için yetkiden dolayı sadece belli kısımlarda arama yapacaktır. locate Music komutunu yürüttüğümüzde aşağıda görselde ki gibi hangi konumda olduğunu bize gösterdi.
locate Music

Şimdi uzantılara göre bir arama gerçekleştirelim. Makinamızda tüm .conf dosyalarını bulalım. * karakteri ile sonu .conf ile biten hepsini çağırmış oluyoruz.
sudo locate *.conf

Daha kullanışlı bir hale getirmek için, çıktıları girdi olarak grep komutuna yönlendirelim. Bu durumda arama sonuçlarını filtreleme yaparak istediğimiz sonuca daha kolay bir şekilde ulaşabiliriz.
sudo locate *.conf | grep smb

Yine bir çıktımızı, girdi olarak nl komutuna yönlendirelim. Bu sayede arama sonuçlarının yanına satır numaraları eklemiş oluruz. Bunun gibi bir çok işlemlerleri yapabiliriz.

Locate komutunda önemli bir detay vardır. locate komutu, geleneksel olarak günde bir kez güncellenen bir veritabanını kullanır. Bu veritabanı, veritabanı en son güncellendiğinde sistemde bulunan tüm dosyaların bir listesini içerir. Yani yeni bir dosya oluşturulduğunda arama yaptığımızda bunu bulamayacaktır. Yetkili hesabımız ile updatedb komutunu çalıştırırak manuel olarak güncelleyebiliriz.
Bu demek oluyor ki yeni bir dosya veya dizin oluştuğu zaman veritabanı güncellenene kadar istediğimizi bulamayacağız. Hemen örnekleyelim. Bir klasör oluşturuyorum.
mkdir MEHMETOZ1299
locate komutunu çalıştırdığım zaman dizini bulamadığımı görüyorum. Akabinde yetkili bir kullanıcı ile veritabanını güncelleyip tekrar arama yaptığımda artık bulabildiğimi görüyorum.
sudo locate Mehmetoz1299
sudo updatedb
sudo locate Mehmetoz1299
