Linux'ta find komutu, belirtilen dizinlerdeki dosya ve dizinleri çeşitli kriterlere göre aramak için kullanılır. Bu komut Linux'taki en güçlü ve yaygın yardımcı programlardan biridir.
find komutunun temel formatı aşağıdaki gibidir:
find [path] [expression]
nerede:
path
dosyaların aranacağı dizinin yoludur (varsayılan olarak find geçerli dizini ve tüm alt dizinlerini arar);
expression
, dosyaları aramak için kriterleri tanımlayan bir ifadedir.
Aşağıda, bir find komutu ifadesinde kullanılabilecek en yaygın dosya arama ölçütlerinden bazıları verilmiştir:
-name
: dosyaları ada göre arar. Örneğin:
find /home/user -name myfile.txt
-type
: belirli bir türdeki dosyaları arayın (örneğin, normal dosyalar için f
veya dizinler için d
). Örneğin:
find /home/user -type f
-boyut
: dosyaları boyutlarına göre arar. Örneğin:
find /home/user -size +10M
-mtime
: dosyaları son değişiklik zamanına göre arayın. Örneğin: -user ve
find /home/user -mtime -7
-user
ve -group
: dosyaları sahip ve gruba göre arayın. Örneğin:
find /home/user -user bob -group users
Birden fazla arama kriterini tek bir ifadede birleştirmek için
-and
, -or
ve -not
mantıksal operatörlerini kullanabilirsiniz.
Örneğin, aşağıdaki komut /home/user
dizininde son 7 gün içinde değiştirilmiş ve 10 megabayttan büyük olan tüm dosyaları bulacaktır:
find /home/user -type f -mtime -7 -size +10M
find komutu ayrıca -exec
seçeneğini kullanarak bulunan dosyalar üzerinde çeşitli eylemler gerçekleştirmenize olanak tanır. Örneğin, aşağıdaki komutu kullanarak 30 günden daha uzun bir süre önce değiştirilmiş tüm dosyaları silebilirsiniz:
find /home/user -type f -mtime +30 -exec rm {} ;
Burada, -exec
seçeneği bulunan her dosya için rm
komutunu çalıştırır ve komuttaki dosya adı yerine {}
kullanır.
find
komutu Linux'ta dosya ve dizinleri bulmak için kullanılan güçlü bir araçtır ve yönetimle ilgili çeşitli görevleri yerine getirmek için kullanılabilir.
find
komutu, dosyaları daha doğru bir şekilde bulmak için kullanılabilecek diğer birçok seçeneği destekler:
-iname
: dosyaları karakter büyüklüğüne bakmadan ada göre arar. Örneğin:
find /home/user -iname myfile.txt
-regex
: adları belirli bir düzenli ifadeyle eşleşen dosyaları arayın. Örneğin:
find /home/user -regex ".*.txt$"
-maxdepth
ve -mindepth
: alt dizinlerdeki dosyalar için arama derinliğini sınırlar. Örneğin:
find /home/user -maxdepth 2 -type f
-prune
: belirli dizinleri aramanın dışında bırakın. Örneğin: -print
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: bulunan dosyaların listesini standart çıktıya verir. Örneğin:
find /home/user -type f -print
find
ayrıca dosyaları izinler, dosya öznitelikleri, SELinux
etiketleri ve diğerleri gibi çeşitli özniteliklere göre aramayı da destekler. Bu seçenekler hakkında daha fazla bilgi find
komutunun belgelerinde bulunabilir.
Komut, tüm dosya sistemindeki dosya ve dizinleri arayabilir, bu da çok fazla zaman ve kaynak gerektirebilir. Bu nedenle, bu komutu kullanırken dikkatli olmak ve sistemde gereksiz dosyalar veya hatalar bulmaktan kaçınmak için arama kriterlerinin doğru ayarlandığından emin olmak önemlidir.