LİNUX FİND KOMUTU
Herhangi bir dosyanın veya dizinin tam olarak ismini hatırlamayabiliriz. Yada belirli özellikleri içeren dosya ve dizinleri aramamız gerekebilir. Böyle bir durum söz konusu olduğu zaman linux sistemlerde dosya ve dizin arama işlemlerini find komutu sayesinde gerçekleştirebiliriz. Find komutunu kullanmamız vakit kaybını önlememiz açısından biz linux kullanıcıları için oldukça önemlidir. Aksi taktirde basit bir arama işlemi için dizin dizin gezmemiz ciddi bir vakit kaybına sebep olacaktır. Unutmadan find komutunun işlevini sizlere resimler yardımıyla Centos dağıtımı üzerinden anlatmaya çalışacağım. O halde başlayalım.
find komutunun temel söz dizimi şu şekildedir:
find (aramanın gerçekleştirileceği dizin) (kullanılacak parametreler) (dosya adı)
Tüm sistemi içeren bir arama gerçekleştirmek için yapmamız gereken işlem, aramanın gerçekleştirileceği dizinin en tepeden yani root(kök) dizininden başlamasını sağlamamızdır. Bunun için aramanın gerçekleştirileceği dizine / işareti koymamız yeterlidir.
Find komutunu verimli bir şekilde kullanmak için içerdiği parametleri iyi anlamış olmak gerekiyor. Şimdi isterseniz bu parametrele kısaca bir göz atalım.
find /home -name "P*"
* işareti linux sistemlerde özel karakter olarak başka işlemlerde kullanılıyor. Ancak biz çift tırak arasında kullanarak şunu belirtmiş olduk P harfi ile başlayan dosya veya dizinleri bana getir. Tahmin edebileceğiniz gibi * işaretini sona değilde başa yazmış olsaydık "*P" gibi bu sefer bize p harfi ile biten dosya veya dizinleri getirecekti. Aynı zamanda unutmamalısınız ki küçük ve büyük harf hassasiyeti find komutu için oldukça önemlidir.
Bir başka örnek olarak home dizini altındaki tüm .py uzantılı dosyaları bulalım. Bunun için kullanmamız gereken komut şu şekildedir.
find /home -name "*.py"
find . -user onure
Burada .(nokta) işareti bulunduğumuz dizinden başlayarak, altındaki tüm dizinlerde arama gerçekleştireceğimizi ifade ediyor. Üstteki komut sayesinde onure kullanıcısına ait tüm dosya ve dizinleri listelemiş oluyoruz.
find /home -perm 777
Ben daha önceden Deneme.py dosyasının erişim iznini 777 olarak değiştirdim. Ardından arama işlemini gerçekleştirdim. Peki erişim izni 777 olmayan dosya ve dizinleri listelemek isteseydik o zaman şu şekilde bir komut vermemiz gerekirdi.
find /home ! -perm 777
find /usr -group onure
find . -type d
find . -type f
Şimdilik yazıyı burada sonlandırmak istiyorum. Bir sonraki yazımda find komutu ile çeşitli aramalar gerçekleştireceğiz.
find komutunun temel söz dizimi şu şekildedir:
find (aramanın gerçekleştirileceği dizin) (kullanılacak parametreler) (dosya adı)
Tüm sistemi içeren bir arama gerçekleştirmek için yapmamız gereken işlem, aramanın gerçekleştirileceği dizinin en tepeden yani root(kök) dizininden başlamasını sağlamamızdır. Bunun için aramanın gerçekleştirileceği dizine / işareti koymamız yeterlidir.
Find komutunu verimli bir şekilde kullanmak için içerdiği parametleri iyi anlamış olmak gerekiyor. Şimdi isterseniz bu parametrele kısaca bir göz atalım.
PARAMETRELER
-name:
Belirttiğiniz dosya ve dizin adıyla arama işlemini gerçekleştirmemize yardımcı olur. Örneklendirmemiz gerekir ise home dizininde P adıyla başlayan dosya veya dizinleri bulmamız için kullanmamız gereken komut şu şekildedir.find /home -name "P*"
* işareti linux sistemlerde özel karakter olarak başka işlemlerde kullanılıyor. Ancak biz çift tırak arasında kullanarak şunu belirtmiş olduk P harfi ile başlayan dosya veya dizinleri bana getir. Tahmin edebileceğiniz gibi * işaretini sona değilde başa yazmış olsaydık "*P" gibi bu sefer bize p harfi ile biten dosya veya dizinleri getirecekti. Aynı zamanda unutmamalısınız ki küçük ve büyük harf hassasiyeti find komutu için oldukça önemlidir.
Bir başka örnek olarak home dizini altındaki tüm .py uzantılı dosyaları bulalım. Bunun için kullanmamız gereken komut şu şekildedir.
find /home -name "*.py"
-user:
Dosya veya dizin sahibine göre arama işlemini gerçekleştirir. Örneğimizde onure kullanıcısına ait tüm dosya ve dizinleri listeleyeceğiz. Bu işlem için yazmamız gereken komut şu şekildedir.find . -user onure
Burada .(nokta) işareti bulunduğumuz dizinden başlayarak, altındaki tüm dizinlerde arama gerçekleştireceğimizi ifade ediyor. Üstteki komut sayesinde onure kullanıcısına ait tüm dosya ve dizinleri listelemiş oluyoruz.
-perm:
Tahmin edebileceğiniz üzere erişim izinlerine göre arama işlemini gerçekleştirir.Örneğin home dizini altında bulunan 777 iznine sahip dosya ve dizinleri listeleyelim.find /home -perm 777
Ben daha önceden Deneme.py dosyasının erişim iznini 777 olarak değiştirdim. Ardından arama işlemini gerçekleştirdim. Peki erişim izni 777 olmayan dosya ve dizinleri listelemek isteseydik o zaman şu şekilde bir komut vermemiz gerekirdi.
find /home ! -perm 777
-group:
Dosya ve dizinin bağlı olduğu gruba göre arama yapar.find /usr -group onure
-type:
Arama işlemini gerçekleştirirken dosya veya dizin olarak arama kriteri belirlemek için -type parametresinden faydalanabiliriz.-type d:
d harfini type parametresi ile kullandığımızda dizin arama işlemlerini gerçekleştirmiş oluruz.Örneğin bulunduğumuz dizindeki tüm diğer dizinleri bulabilmek için şu komutu kullanabiliriz.find . -type d
-type f:
f harfini type parametresi ile kullandığımızda dosya arama işlemlerini gerçekleştirmiş oluruz.Örneğin bulunduğumuz dizindeki tüm diğer dosyaları bulabilmek için şu komutu kullanabiliriz.find . -type f
Şimdilik yazıyı burada sonlandırmak istiyorum. Bir sonraki yazımda find komutu ile çeşitli aramalar gerçekleştireceğiz.
Yorumlar
Yorum Gönder