Etiket arşivi: linux find komutu

Linux Dosya ve Klasör Arama

Bilgisayarımızda veya sunucumuzda dosya arama işlemini çok sık bir şekilde yapmaktayız. Windows işletim sistemlerinde sayfaların arama bölümlerinden bu işlemi çok kolay bir şekilde yapabilmekteyiz. Linux tabanlı işletim sistemlerinde ise dosya ya da klasör aramak için find komutunu kullanmamız gerekmektedir.

Komutun Kullanımı;
find dosya_veya_klasör

Örnek;
find ders

Yukarıdaki örnekte sistemimizde yer alan ders isimli klasörü aratmış oldum. İşletim sistemimiz üzerinde daha ayrıntılı bir şekilde dosya yada klasör araması yapmak istiyorsak find komutunu biraz daha farklı bir şekilde kullanmamız gerekmektedir. Şimdi bu işlem için birkaç tane örnek yapalım;

Örnek1;
cd home
find * -mtime +25 -exec ls {} \;


Yukarıdaki örnekte ilk olarak cd komutu ile home klasörünün içine girmiş olduk. Daha sonra find komutunu daha gelimiş bir şekilde kullanarak 10 günden eski olan dosyaları ve klasörleri aratmış olduk.

Örnek2;
find /home/ -name "*.html"

Yukarıdaki örnekte uzantıya göre dosya arama işlemi yapmış olduk. Burada home klasörü içinde .html uzantılı dosyaları arattırmış olduk.

Örnek3;
find /home/ -type f -size +100mb -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Bu örneğimizde ise home dizinimizde bulunan 100 mb ve üstü dosyalarımızı aratmış olduk. Find komutunu yaptığımız örneklerdeki gibi daha ayrıntılı bir şekilde kullanmanız mümkündür.

Değiştirilen Dosyaları Bulma
Find komutunun kullanımını çeşitli örnekler üzerinden açıklamıştık. Bu komuta çeşitli parametreler ekleyerek daha gelişmiş bir şekilde dosya araması yapmamız mümkündür. Belirli dakikadan önce veya belirli dakika içinde değiştirilmiş dosyaları bu komut sayesinde bulmamız mümkündür. Şimdi bu işlemleri nasıl yapacağımızı örneklerle açıklayalım;

Örnek1;
find / -type f -mmin -30 | xargs ls –l

Yukarıdaki örnek komutta son 30 dakika içinde değiştirilmiş dosyaları aratmış oldum.

Örnek2;
find / -type f -mtime -10 | xargs ls –l

Yukarıdaki örnekte ise son 10 gün içinde değiştirilen dosyaları aratmış oldum.

Örnek3;
find / -type f -mmin +30 | xargs ls –l

Üçüncü örneğimizde son 30 dakikadan daha önce değiştirilmiş dosyaları aratmış oldum. Örneklerde olduğu gibi sistemimizde belirli aralıklarda değiştirilen dosyaları find komutu sayesinde bulmamız mümkündür.

Find Komutu Parametreleri
Find komutuna yukarıdaki örneklerdeki gibi çeşitli parametreler ekleyerek detaylı bir şekilde dosya veya klasör araması yapabilmemiz mümkündür. Find komutuna ekleyebileceğimiz diğer faydalı olabilecek parametreleri aşağıdaki tablodan inceleyebilirsiniz;

PARAMETRE AMACI
-name [dosya_ismi]
Dosya veya klasör ismi belirterek arama yapılmasını sağlar.
-user [Kullanıcı_ismi] Kullanıcı ismi veya id numarası yazılarak o kullanıcıya ait olan dosyaların veya klasörlerin aranmasını sağlar.
-group [grup_ismi] Gruba ait olan dosyaların veya klasörlerin aranmasını sağlar.
-perm [izin] Belirtilen izne sahip olan dosyaları ve klasörleri arar.
-size [+/- Dosya boyutu] Dosya veya klasör boyutuna göre arama yaptırmak için kullanılır.
-nouser Hiçbir kullanıcıya ait olmayan dosya ve klasörleri bulur.
-nogroup Hiçbir gruba ait olmayan dosya ve klasörleri bulur.
-newer [dosya_ismi] Belirtilen dosya isminden daha yeni olan dosya veya klasörleri aratır