Çoğu zaman, Linux ortamlarında belirli dosya türlerini aramak gerekir ve zaman kaybetmeden bunları doğru şekilde aramanın doğru yolunu bilmiyoruz.
Linux dağıtımları için, dosya sistemindeki nesneleri koşullu bir mekanizmaya dayalı olarak özyinelemeli olarak filtrelemek için geliştirilmiş find adlı bir komut geliştirilmiştir. Bu find komutu ile dosya sisteminde bir dosya veya dizini arayabiliriz.
-exec parametresini dahil edersek, dosyalar aynı komut içinde hemen bulunabilir ve işlenebilir.
1. Dosyaları ada veya uzantıya göre bulun Linux komutları
Belirli bir dosyayı ada veya uzantıya göre bulmak için komut satırından find'ı kullanabiliriz.
Sözdizimi:
bul / ana sayfa / kullanıcı adı / -name "* .uzantı"Örneğin, .gz ile biten dosyaları arayacağız:
BÜYÜT
2. Find Linux Komutlarıyla Kullanılacak Kullanışlı Komutlar ve Sözdizimi
find komutuyla aşağıdaki gibi bazı parametre seçeneklerimiz var:
seçenekleri bul başlangıç / yol ifadesioptions özelliği, arama sürecinin davranışını ve optimizasyon yöntemini kontrol edecektir. home / path özelliği, find'in filtrelemeye başlayacağı en üst düzey dizini tanımlayacaktır.
İfade özniteliği, çıktı üretmek için dizin hiyerarşisini arayan testleri kontrol eder.
Örneğin, aşağıdakileri yürütebiliriz:
bul -O3 -L / var / www / -name "* .html"Bu komut, maksimum optimizasyon seviyesini (-O3) etkinleştirir ve .html ile biten dosyalar için / var / www / yolundaki tüm dizin ağacını aramak için sembolik bağları (-L) izlemenizi sağlar.
BÜYÜT
3. Linux Bul komutlarıyla seçenekler ve optimizasyon
Find'ın varsayılan arama yapılandırması sembolik bağları (kısayol dosyaları) görmezden gelecektir, eğer takip etmek ve sembolik bağları almak istiyorsak, daha önce gördüğümüz gibi komuta -L seçeneğini ekleyebiliriz. Find, -O1, -O2 ve -O3 olmak üzere üç (3) optimizasyon seviyesine sahiptir.
-O1 optimizasyonu varsayılandır ve diğer tüm testleri çalıştırmadan önce sizi dosya adına göre filtrelemeye zorlar.
-O2 düzeyindeki optimizasyon, -O1'de olduğu gibi dosya adı filtrelerine öncelik verir ve daha sonra kaynak açısından daha yoğun diğer koşullara geçmeden önce tüm dosya türü filtrelemesini çalıştırır. -O3 seviyesi optimizasyonu, find'in daha derin bir optimizasyon gerçekleştirmesini sağlar ve tüm testleri göreceli harcamalarına ve daha iyi sonuçların olasılığına göre yeniden sıralar.
Seçeneklerden bazıları şunlardır:
İlk dosya adına dayalı bir filtredir.
-O1 (Varsayılan)
Önce dosya adını ve ardından dosya türünü kullanın
-O2
Sonuçları yeniden sıralaKaynakların verimli kullanımına ve daha iyi sonuçların olasılığına göre aramanın otomatik olarak yeniden sıralanmasını sağlar.
-O3
X seviyelerindeki tüm alt dizinlerin yanı sıra geçerli dizini de arar
-maksimum derinlik X
Metin durumundan bağımsız olarak arama yapın
-iname
Yalnızca test durumuyla eşleşmeyen sonuçları döndürür
-olumsuzluk
Dosya araması yapın
-f tipi
Arama dizinleri
-d tipi
4. Dosyaları zaman değişikliği Linux komutlarına göre bulun
find komutu, dosyanın son değişikliğine göre bir dizin hiyerarşisini filtreleme yeteneğine sahiptir.
Sözdizimi şunlardır:
bul / -name "* conf" -mtime 8 bul / ana sayfa / kullanıcı / -name "* conf" -mtime 2İlk komut, tüm dosya sistemindeki conf karakterleriyle biten ve son 8 gün içinde değiştirilmiş tüm dosyaların bir listesini görüntüler. İkinci komut, kullanıcının ana dizinini conf karakterleriyle biten ve önceki 2 gün içinde değiştirilmiş adlara sahip dosyalar için filtreler.
İçerik tabanlı dosyaları bulmak için Grep kullanın Linux komutlarıFind komutu yalnızca bir dosya adına ve meta verilere dayalı olarak dizin hiyerarşisini filtreleyebilir, bu nedenle dosya içeriğine göre arama yapmanız gerekiyorsa grep gibi bir araç kullanın.
Aşağıdaki sözdizimini kullanacağız:
bulmak. -type f -exec grep "örnek" '{}' \; -YazdırBu, bir dosya olan (-type f) geçerli dizin hiyerarşisindeki (.) tüm nesneleri bulur ve ardından koşulları karşılayan her dosya için "example" grep komutunu çalıştırır. Eşleşen dosyalar ekrana yazdırılır (-print). Ayraçlar ({}), arama sonucu sonuçları için bir yer tutucudur. {}, hatalı biçimlendirilmiş bir dosya adının grep oluşturmasını önlemek için tek tırnak (') içine alınır. -exec komutu noktalı virgül "(;)" ile sonlandırılır ve kabuk tarafından yorumlanmaması için "(\;)" karakterinden önce gelmesi gerekir.
Find Komutu Linux Komutlarını Kullanarak Dosyalar Nasıl Bulunur ve İşlenirArama ifadesiyle eşleşen tüm nesnelere karşı komutları çalıştırmak için -exec seçeneğini kullanabiliriz.
Sözdizimi:
bulmak. -name "rc.conf" -exec chmod o + r '{}' \;Bu, mevcut hiyerarşideki (.) tüm nesneleri rc.conf adlı dosyalar için filtreler ve arama sonuçlarının izinlerini değiştirmek için chmod veya + r komutunu çalıştırın.
Bu yüzden find, Linux'ta tam dosya araması için bir müttefiktir.