Linux Dosyalar içinde arama yapmak
Linux üzerinde find komutu ile dosya ya da dosyalar içinde
gelişmiş aramalar yapabilirsiniz,
alt dizinleri de dahil eden bu arama yöntemi için:
find komutu ile;
find . -iname '*conf' | xargs grep 'kelime' -sl
-iname ‘*conf’ bölümü aramanın sadece conf dosyalarında yapılacağını belirtir,
-iname ‘*’ yazmanız durumunda tüm dosyalarda arama yapılacaktır.
grep ‘kelime’ ise aranacak sözcüğün “kelime” olduğunu belirtir.
Sadece dosya isimleri ile arama yapmak istiyorsanız,
arama veritabanını güncelleyip daha sonra arama yapmanızı tavsiye ederiz:
updatedb
locate dosyaadi
find ile büyük dosyaları bulmak
Aşağıdaki komut ile /dizin dizininde boyutu 100 MB ve üzeri olan dosyaları bulup
sadece isimlerini yazdırabilirsiniz:
find /dizin/ -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
find komutu ile dosya değiştirme ya da oluşturma tarihine göre dosyaları bulmak
Aşağıdaki komut ile /dizin dizininde iki gün önce modifiye edilmiş dosyaları bulup
isimlerini yazdırabilirsiniz,mtime yerine ctime yazarsanız 2 gün içerisinde
oluşturulmuş dosyaları bulursunuz:
find /dizin/ -type f -mtime -2 -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
Boş dizinleri aramak için;
find /dizin_yolu -depth -type d -empty => find /etc -depth -type d -empty
Boş dosyaları aramak için;
find /dizin_yolu -depth -type f -empty => find /etc -depth -type f -empty
Adını bildiğin nesneyi aramak için;
find /dizin -name “isim” => find /etc -name “sources.list”
Uzantısı ile bir hedefi aramak için;
find /dizin -name “*.txt” => find ~/ -name “*.txt”
İzinlerini bildiğiniz uzantıyı aramak için;
(izin değerlerini ve uzantıları arama tercihinize göre değiştirin)
find /dizin -name “*.txt” -perm 777 => find ~/ -name ‘*.txt’ -perm 644
İzinlere göre aramak için;
(izin değerlerini arama tercihinize göre değiştirin)
find /dizin -perm -izin_degeri => find ~/ -perm -644
İsmini bilip uzantısını bilmediğiniz hedefi aramak için;
find /dizin -name “dosya_ismi.*” => find /etc -name “sources.*”
Son 24 saat içinde değiştirilmiş dosyaları bulmak için;
find /dizin -mtime 0,1,2 => find ~/ -mtime 0
not:24 saat için 0, 48 saat için 1, 72 saat için 2 yazmalısınız
Son 24 saat içinde giriş yapılmış hedefleri bulmak için;
find -atime 0,1,2 => find -atime 0
Dosya sahipliğine göre arama yapmak için;
find /dizin -user kullanıcı_adı => find ~/ -user root
NOT: Eğer aramayı sistem dizinlerinde yapacaksanız yetki aldıktan sonra
ya da komutların başına sudo ekleyerek yapmalısınız.