Programlama da veya günlük bilgisayar kullanımında bir fonksiyon adı, değişken adı veya herhangi bir metnin hangi dosyalarda geçtiğini öğrenmemiz gerekir. Bu gibi durumlarda linux kullanıcıları aşağıdaki komut dizisi ile bu dosyalara ulaşabilirler.
find /var/www -type f -name "*.php"|xargs grep -l 'dosya_ac'
find komutu belirttiğiniz yolda dosyaları arar. Parametre olarak /var/www verdiğimiz için www dizininde ve tüm alt dizinlerinde arama yapar.
-type opsiyonu aldığı parametrelerle aradığınız nesnenin tipini belirlememize yardımcı olur. Dosya için f, dizin için d, sembolik link için l gibi.
-name parametresi dosya adını ifade eder. Joker karakterler kullanabilirsiniz. “*.php” tüm php uzantılı dosyalar gibi.
find ile bulduğumuz bu dosyaların içinde kelime araması yapmak istiyorsak sonuç olarak bulunan dosya isimlerini dosya içinde arama yapabileceğimiz grep komutuna yönlendirmemiz gerekir. grep komutuna yönlendirme yapmak için pipe | işareti, grep komutuna dosya isimlerini parametre olarak göndermek içinde xargs komutu kullanılır.
grep komutuna parametre olarak -l verdiğimizde bize sadece aradığımız metnin geçtiği dosya isimlerini geri döndürür ve dosya içerisinde arama yaparken ilk bulduğu metinden sonra aramayı bırakarak daha hızlı ilerlemeyi sağlar. -l parametresi verilmediği taktirde metnin dosya içerisinde geçtiği tüm satırları geri döndürür.
Kısaca yukarıdaki komut, /var/www dizini ve tüm alt dizinlerinde ki php uzantılı tüm dosyalarda ‘dosya_ac’ metni geçenleri bulur.


Mart 23rd, 2008 02:15
Döküman için teşekkür ediyorum, gerçekten işime yaradı.