Linux sistemlerinde dosyalar içinde arama yapmak için find komutu kullanılır.
Find komutunu kullanarak Linux sistemlerde gelişmiş aramalar da yapabilirsiniz,
Arama yapmak için find komutu ile;
1 2 3 | find . -iname 'conf' | xargs grep 'kelime' -sl |
-iname ‘conf’
bölümü aramanın sadece conf dosyalarında yapılacağını belirtir,
-iname ‘*’
yazarsak tüm dosyalarda arama yapılacaktır.
grep ‘kelime’
ise aranacak sözcüğün “kelime”
olduğunu belirtir.
Sadece Dosya İsimleri ile Arama
Sadece dosya isimleri ile arama yapmak istiyorsanız, arama veritabanını güncelleyip daha sonra arama yapmanızı tavsiye ederiz:
1 2 3 4 | 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:
1 2 3 | 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:
1 2 3 | find /dizin/ -type f -mtime -2 -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' |
Boş dizinleri aramak için;
1 2 3 | find /dizin_yolu -depth -type d -empty => find /etc -depth -type d -empty |
Boş dosyaları aramak için;
1 2 3 | find /dizin_yolu -depth -type f -empty => find /etc -depth -type f -empty |
Adını bildiğin nesneyi aramak için;
1 2 3 | find /dizin -name “isim” => find /etc -name “sources.list” |
Uzantısı ile bir hedefi aramak için;
1 2 3 | 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)
1 2 3 | 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)
1 2 3 | find /dizin -perm -izin_degeri => find ~/ -perm -644 |
İsmini bilip uzantısını bilmediğiniz hedefi aramak için;
1 2 3 | find /dizin -name “dosya_ismi.” => find /etc -name “sources.” |
Son 24 saat içinde değiştirilmiş dosyaları bulmak için;
1 2 3 | 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;
1 2 3 | find -atime 0,1,2 => find -atime 0 |
Dosya sahipliğine göre arama yapmak için;
1 2 3 | 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.
Add Comment