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 ‘BarNeo’ -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 ‘BarNeo’ ise aranacak sözcüğün “BarNeo” olduğunu belirtir.
Dosya ismine göre arama yapma
Fark ettiyseniz dosya içerisinde arama yapmak için kullandığınız find komutu aynı zamanda dosya ismine göre de arama yapabilmektedir. Fakat find komutu bir veri tabanı kullanmadan, o anda dizinde olan tüm dosyaları belirlenen direktifler doğrultusunda arar. Eğer dosyaların daha önceden taranıp indekslenmesini istiyorsanız find komutu yerine locate komutunu kullanabilirsiniz. Locate komutu çoğu sistemde kurulu olarak gelmez ama kurulumu basittir. Kurulum direktiflerinden size uyanı aşağıdan seçebilirsiniz:
Centos, Red-Hat ‘da
yum install mlocate
Fedora’da
dnf install mlocate
Debian, Ubuntu
apt-get install mlocate -y
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
Örnek;
find /etc -depth -type d -empty
Boş dosyaları aramak için;
find /dizin_yolu -depth -type f -empty
Örnek;
find /etc -depth -type f -empty
Adını bildiğin nesneyi aramak için;
find /dizin -name “isim”
Örnek;
find /etc -name “sources.list”
Uzantısı ile bir hedefi aramak için;
find /dizin -name “.txt”
Örnek;
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
Örnek;
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
Örnek;
find ~/ -perm -644
İsmini bilip uzantısını bilmediğiniz hedefi aramak için;
find /dizin -name “dosya_ismi.”
Örnek;
find /etc -name “sources.”
Son 24 saat içinde değiştirilmiş dosyaları bulmak için;
find /dizin -mtime 0,1,2
Örnek;
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
Örnek;
find -atime 0
Dosya sahipliğine göre arama yapmak için;
find /dizin -user kullanıcı_adı
Örnek;
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.
Barış Demirtaş
Aralık 2023
Comments are closed