19 Mayıs 2016 Perşembe

Linux locate, find komutları

locate : Dosya ve dizinlerin dosya sistemindeki yerini bulmak için kullanılır.

locate komutu aramayı /var/lib/mlocate/mlocate.db veritabından yapar bu veritabanı varsayılanda gunde bir kere
guncellenir.

Bu yüzden yeni bir dosya oluşturduğumuzda locate komutu bulmayabilir. Arama yapmadan önce updatedb yaparak bu veritabanını güncelleyerek daha sağlıklı sonuçlar elde edebiliriz.

Örnek :  bir .deb paketi arayalım.
 
hakan hakan # locate google-chrome-stable_current_amd64.deb 
/home/hakan/google-chrome-stable_current_amd64.deb


find : Aradığımız dosyayı belirttiğimiz dizinin altında tarayarak bulmaya yarar. locate komutuna göre uzun süren bir komuttur.

Aynı paketi find ile /home dizini altında arayalım.

hakan hakan # find /home/ -name google-chrome-stable_current_amd64.deb 
/home/hakan/google-chrome-stable_current_amd64.deb


hakan hakan # find /home ! -user ali -name alibaba* -exec rm -rf {} \;



Bu komut home dizininde arama yapar ! işareti ise hangi kullanıcı olmayacağı anlamına gelir. ! koymazsak tam aksini hangi kullanıcıya ait olduğunu söylerdik. ali kullanıcısına ait olmayan dosyalarda arama yapar ve ismi alibaba şeklinde başlayan dosyalarda arar ve bulduğu dosyalarda rm -rf komutunu çalıştırır. ve bulduğu dosyaları siler.

hakan hakan # find /var/ -type d perm 777 -exec chmod 755 {} \;

var dizini altında arama yapar. - type d ile dizinlerde arama yapar - perm ile 777  iznine sahipli dizinleri bulur ve bunların izinlerini 755 olarak değiştirir.

hakan hakan # find /var/ -type f -perm 777 -exec chmod 644 {} \;

var dizini altında 777 izine sahip dosyaları bulup bunların izinlerini 644 olarak değiştiririz.

find komutunu yanlış izinli dosyaları değiştirmek için veya yanlış dosyaları silmek içinde kullanabiliriz.

Hiç yorum yok:

Yorum Gönder