Uzantısına Göre Dosya Bulmak
sudo find /usr/ -type f -name "*.mo" | grep /tr/
Üstteki komut /usr/ dizini altında, uzantısı .mo olan ve dosya yolunda /tr/ dizgesini içeren sonuçları dönüyor.
sudo: yönetici izinlerini sağlar
find: komutumuz
/usr/: aramak istediğimiz dizin
-type -f: aramak istediğimizin bir dosya olduğunu söylüyor
-name: arama işleminin ad alanında yapılacağını söylüyor
“*.mo”: adı ne olursa olsun uzantısı .mo ise dosyaları listele
| : pipe yani boru işlemi, bir işlemi diğerine bağlamaya yarıyor
grep: sonuçlar içinde süzme işlemi yapıyor
/tr/: burada süzmek istediğimiz metni belirtiyoruz.
Dosya Uzantısına Bakarak İçinde Değer Aramak
find ./ -type f -name "*.vala" -exec grep -l "_(\"" {} \; | sort
Bu sefer, konuyu ChatGPT açıklasın istedim. İşte sonuç:
Bu Linux komutu, belirli bir klasör ve alt klasörlerinde bulunan `.vala` uzantılı dosyaları arar, bu dosyalarda belirli bir metni içeren dosyaları listeleyen ve sonuçları alfabetik olarak sıralayan bir komuttur. İşte komutun ayrıntılı açıklaması:
1. `find ./`: Bu komut, geçerli dizin (şu anki çalışma dizini) ve altındaki tüm dosyaları ve klasörleri tarar. `./`, geçerli dizini ifade eder.
2. `-type f`: Bu, `find` komutunun yalnızca dosyaları aramasını ve klasörleri görmezden gelmesini sağlar. Yani, yalnızca dosyaları dikkate alır.
3. `-name “*.vala”`: Bu, yalnızca `.vala` uzantısına sahip dosyaları aramasını belirtir. `*.vala` deseni, `.vala` uzantısına sahip tüm dosyaları eşleştirir.
4. `-exec grep -l “_(\”” {} \;`: Bu, her eşleşen dosya için `grep` komutunu çağırır. `grep -l “_(\””` ifadesi, herhangi bir `.vala` dosyasında `”_(\””` metnini içeren dosyaları bulur. `{}` işareti, her eşleşen dosya adını temsil eder ve `\;` komutun sonlandığını belirtir.
5. `|`: Bu, bir komutun çıktısını diğerine bağlar. Yani, `find` komutunun çıktısı `grep` komutunun girdisi olur.
6. `sort`: Bu, `grep` komutunun çıktısını alfabetik olarak sıralar. Yani, sonuçları dosya adlarına göre sıralar.
Sonuç olarak, bu komut, `.vala` uzantısına sahip dosyalar arasında `”_(\””` metnini içeren dosyaları bulur ve bu dosyaları alfabetik olarak sıralar.
İçinde Arama Terimi Geçmeyen Dosyaları Bulmak
find ./ -type f -name "*appdata*" -exec grep -L 'content_rating type' {} +
Dosya adında appdata geçen dosyaların içinde content_rating type değerini içermeyen dosyaları, yollarıyla birlikte listeler.
Son örneğimizde ise aynı işlemi gizli dosyaları hariç tutarak yapalım.
find ./ -type f -name "*appdata*" -not -path '*/.*' -exec grep -L 'content_rating type' {} +