İçeriğe geçmek için "Enter"a basın

Arama komutları

Selam arkadaşlar, bu yazımda sizlere elimden geldiği kadar linux’da arama komutları hakkında bilgi vermeye çalışacağım.

Öncelikle komutları deneyebilmemiz için birkaç klasör ve dosya oluşturalım. Bu işlemleri masaüstünde yapmanızı tavsiye ederim. Aşağıdaki komutlar ile önce ana dizine daha sonra ise Masaüstü klasörüne geçiyoruz.

cd
cd Masaüstü
mkdir -p Manav/Meyveler
mkdir -p Manav/Sebzeler

Komutlarını konsoldan göndererek Masaüstü dizini altında “Manav”, bu yeni dizin içerisinde de “Meyveler” ve “Sebzeler” alt dizinlerini oluşturmuş olduk. Şimdi de;

touch Meyveler/meyve_listesi.txt
cat > Sebzeler/sebze_listesi.txt

Şimdide yukarıdaki komutları gönderip meyve_listesi.txt ve sebze_listesi.txt dosyalarını oluşturduktan sonra; ENTER e basarak, aşağıdaki sebze isimlerini sebze_isimleri.txt dosyası içerisine yazıyoruz.

Lahana
Pırasa
Ispanak
Marul
Kıvırcık
Burokoli

Unutmayın! her sebze isminden sonra enter, dosya içerisine yazmayı bitirmek için CTRL+D tuşlarını kullanıyoruz.

Şimdi gelelim arama komutlarına:

1- LOCATE KOMUTU

İlk önce genel arama komutu olan “locate” komutundan bahsetmek istiyorum. “locate” komutunu kullanabilmek için komutun kurulu olması gerekmektedir. Kurulu değilse aşağıdaki komut ile kurabilirsiniz.

sudo apt install plocate

Dipnot: Komuttaki “plocate” nedir diye merak etmiş olabilirsiniz. Öncesinde bu “mlocate” olarak kullanılıyordu. Sistem içerisinde dosyalama sisteminde bir veritabanı oluşturarak aramaları daha hızlı olarak yapmamızı sağlıyor. mlocate ile plocate arasındaki fark ne derseniz plocate yenisi. SSD ve HDD disklerde daha hızlı arama yapmamızı sağlıyor.

Manav dizinini arayalım (Linux’da Manav ve manav isimli iki ayrı dizin oluşturabiliriz. Bu nedenle, büyük-küçük harf önemlidir:

locate Manav

Ekran çıktısı aşağıdaki gibi Manav dizini ve altındaki dizin ve dosyalarla beraber ayrı ayrı listelendi. Burada Manav dizininin Masaüstü dizini altında olduğunu ve altında bulunan alt dizin ve dosyaları da birlikte görebilmekteyiz.

locate 1

Eğer “listesi” geçen bir dosya arıyor olsaydık, aşağıdaki komutu konsoldan gönderelim:

locate listesi
locate 2

Yukarıdaki ekran çıktısından da farketeceğiniz gibi “listesi” kelimesi iki adet dosya isminde geçtiğini gördük. Fakat biz içerisinde “sebze” geçeni arıyorduk. Arkadaşlar bunu direkt olarak da aratabilirdik. Kod örneği olsun diye bu şekilde kod yazmayı tercih ettim. Kod içerisinde farklı kodlar öğrenmeye devam. Şimdi arama ile beraber süzme yapalım.

locate listesi | grep sebze
locate 3

Gördüğünüz gibi sadece istediğimiz aramayı yaptı. Burada grep komutu ile “sebze” kelimesini çıktının içerisinde süzerek sadece onun gelmesini sağladık.

2- FIND (find) KOMUTU

Linux’da en çok kullanacağımız komut “find” komutu olup, aramaları kendi veritabanından (var/lib/mlocate) yapar. Bu veritabanı biz bilgisayarda bir şeyler yaptıkça güncellenir. Veritabanının içerisinde neler var merak ediyorsak;

cd /var/lib/plocate
sudo strings plocate.db > ~/Masaüstü/outputlocate.txt

İlk komutta veritabanının olduğu klasöre geçiyoruz. Sonrasında çıktıyı düzgün görünsün diye “strings” ifadesi ile düzeltip Masaüstü’ne outputlocate.txt çıktı dostası olarak oluşturduk. Find komutu ile bulunduğumuz dizinde ve dosya ismine göre aramayı aşağıdaki örnek koddaki gibi yapıyoruz.

find . -name meyve_li*
find 1

Buradaki “*” ile meyve_li kelimesinden sonra bir şeylerin olduğu ve buna göre araması gerektiğini belirtiyoruz. “-name” ile dizin-dosya ismine göre aranacağı ve “.” ile de bulunduğumuz klasörde aranacağını belirtiyoruz. Eğer aynı isimde dizin ve dosya varsa hepsini de getirir.

find . -name Meyvele*
find 2

Yalnızca dizini getirsin dersek, “-type d” parametresini kullanıyoruz;

find . -name *eyvele* -type d
find 3

Yalnızca dosyaları getirsin dersek, “-type f” parametresini kullanıyoruz;

find . -name *eyvele* -type f
find 4

1M dan büyük dosyaları bulmak için;

find . -type f -size +1M

Boş dizinleri bulmak için;

find . -type d -empty

Line User Interface (LUI). Komutların tüm linux dağıtımlarında ince farklılıkları vardır ve Ubuntu’da denenmiştir.

İlk yorum yapan siz olun

Bir cevap yazın