Dizinleri Daha Verimli Aramak İçin 'Find' Komutunu Kullanmanın Yolları


Bu eğitim size Linux'ta bir dizin bulmanın farklı yollarını anlatacaktır. Bildiğiniz gibi Linux'ta her şey dizinleri de içeren bir dosyadır. Bir Linux kullanıcısının komut satırında yapacağı yaygın şeylerden biri de bir dosya veya dizin aramaktır.

Komut satırında dosyaları aramak için kullanılan bul, bul ve hangi gibi birkaç farklı araç ve yardımcı program vardır. Ancak son yardımcı program (hangisi) yalnızca bir komutun yerini bulmak için kullanılır.

Bu eğitimin kapsamında esas olarak, canlı bir Linux dosya sistemindeki dosyaları arayan ve locate ile karşılaştırıldığında daha verimli ve güvenilir olan find yardımcı programına odaklanacağız.

Locate'in dezavantajı, updatedb tarafından oluşturulan bir veya daha fazla veritabanını okuması, canlı bir dosya sistemi içinde arama yapmamasıdır. Ayrıca nereden arama yapılacağı (başlangıç noktası) konusunda da esneklik sunmuyor.

Aşağıda locate komutunu çalıştırmaya ilişkin sözdizimi verilmiştir:

locate [option] [search-pattern]

Konum'un dezavantajını göstermek için, mevcut çalışma dizininde pkg adlı bir dizini aradığımızı varsayalım.

Not: Aşağıdaki komutta, --basename veya -b seçeneği locate<'i bildirir yalnızca dosya (dizin) temel adıyla (tam olarak pkg) eşleşecek, ancak yolla (/path/to/pkg) eşleşmeyecek. \ genel bir karakter olduğunda, pkg'in örtülü olarak *pkg* ile değiştirilmesini devre dışı bırakır.

locate --basename '\pkg'

Yukarıdaki komut çıktısından da görebileceğiniz gibi locate, kök (/) dizinden başlayarak arama yapacaktır, bu nedenle aynı isimdeki diğer dizinler eşleştirilir.

Bu nedenle, bu sorunu çözmek için aşağıdaki basitleştirilmiş sözdizimini izleyerek bul'u kullanın:

find starting-point options [expression]

Birkaç örneğe bakalım.

Geçerli çalışma dizini içinde yukarıdaki aynı (pkg) dizini aramak için aşağıdaki komutu çalıştırın; burada -name bayrağı, bu durumda dizin temel adı.

find . -name "pkg"

İzin reddedildi” hatalarıyla karşılaşırsanız sudo komutunu şu şekilde kullanın:

sudo find . -name "pkg"

Dosya türünü belirtmek için -type işaretini kullanarak (aşağıdaki komutta d dizin anlamına gelir) aşağıdaki şekilde bulmanın dizinler dışındaki diğer dosya türlerini aramasını engelleyebilirsiniz:

sudo find . -type d -name "pkg"

Ayrıca, dizini uzun listeleme biçiminde listelemek istiyorsanız -ls eylem anahtarını kullanın:

sudo find . -type d -name "pkg" -ls

Daha sonra, -iname seçeneği büyük/küçük harfe duyarlı olmayan bir aramayı etkinleştirecektir:

sudo find . -type d -iname "pkg" 
sudo find . -type d -iname "PKG" 

Daha ilginç ve gelişmiş kullanım bilgileri bulmak için bul ve bul kılavuz sayfalarını okuyun.

man find
man locate

Son olarak, locate komutuyla karşılaştırıldığında find komutu bir Linux sistemindeki dosyaları (veya dizinleri) aramak için daha güvenilir ve etkilidir.

Daha önce olduğu gibi geri bildirimlerinizi veya sorularınızı aşağıdaki yorum bölümü aracılığıyla bize göndermeyi unutmayın. Son olarak her zaman Tecmint'e bağlı kalın.