Linux grep ve find Komutları Nedir? Sunucuda Dosya ve Metin Arama Nasıl Yapılır?
Sunucu

Linux grep ve find Komutları Nedir? Sunucuda Dosya ve Metin Arama Nasıl Yapılır?

Sunucuda dosya ve metin aramayı find ve grep ile öğrenin. Komut örnekleriyle log incelemeyi ve hatalı ayarları hızla bulmanın yolunu hemen keşfedin.

Cenk ŞEKERCİ

Cenk ŞEKERCİ

Operasyon Yöneticisi

23 Ekim 2026
6 dk okuma

Bir sunucuda yüzlerce dizin ve binlerce dosya arasında tek bir yapılandırma satırını aramak, grafik arayüz olmadan zor görünebilir. Oysa find ve grep komutları bu işi saniyeler içinde halleder. İkisi birbirini tamamlar: find dosyayı bulur, grep dosyanın içindeki metni bulur.

Linux grep ve find Komutları Nedir?

find, dosya ve dizinleri ada, boyuta, türe, sahibe ve değiştirilme tarihine göre arayan komuttur. grep ise bir dosyanın veya komut çıktısının içinde belirli bir metni ya da düzenli ifadeyi (regex) arar. Biri "dosya nerede?", diğeri "bu ifade hangi dosyanın hangi satırında?" sorusuna cevap verir.

Bu iki araç, GNU/Linux dağıtımlarının neredeyse tamamında varsayılan olarak kurulu gelir. Ayrı bir paket yüklemeniz gerekmez; SSH ile sunucuya bağlandığınız anda kullanabilirsiniz. Log incelemek, hatalı bir ayarı bulmak veya şişen dizini tespit etmek gibi günlük yönetim işlerinin çoğu bu ikiliyle çözülür.

Linux'ta Dosya Nasıl Aranır?

Linux'ta dosya aramanın en yaygın yolu find komutudur. Temel söz dizimi find [dizin] [koşul] şeklindedir. Aramayı hangi dizinde başlatacağınızı ve neye göre filtreleyeceğinizi belirtirsiniz.

Netlen Platinum Sunucu Kampanyası

Dosya adına göre arama için şu komutu kullanabilirsiniz:

code
find /var/www -name "wp-config.php"

Büyük/küçük harf ayrımını kaldırmak için -iname kullanılır. Uzantıya göre aramak da mümkündür:

code
find /home -iname "*.log"

locate ile hızlı arama

Dosya adını biliyorsanız locate komutu çok daha hızlı sonuç verir, çünkü canlı tarama yapmak yerine önceden oluşturulmuş bir veritabanına bakar. Bu veritabanı düzenli güncellenmediği için yeni oluşturulan dosyaları göstermeyebilir. Güncel sonuç gerekiyorsa find tercih edilmelidir.

İpucu: Kök dizinde (/) tarama yapmak yerine aramayı mümkün olduğunca dar bir dizinle sınırlayın. Hem süre kısalır hem de gereksiz disk okuma yükünden kaçınırsınız.

Linux find Komutu Ne İşe Yarar?

find komutu yalnızca isim aramaz; dosyaları özelliklerine göre süzer ve bulunanlar üzerinde işlem yapabilir. Boyut, tür, sahiplik, izin ve zaman damgası gibi ölçütleri birleştirerek çok hassas aramalar kurabilirsiniz.

AmaçÖrnek komut
100 MB'tan büyük dosyaları bul`find /var -type f -size +100M`
Son 7 günde değişenleri listele`find /var/www -type f -mtime -7`
Yalnızca dizinleri göster`find /home -type d -name "backup*"`
Belirli kullanıcıya ait dosyalar`find /home -user ahmet`
777 izinli dosyaları bul`find /var/www -type f -perm 0777`

find ile bulunan dosyalara işlem uygulamak

-exec parametresi, bulunan her dosya için başka bir komut çalıştırır. Örneğin 30 günden eski log dosyalarını silmek için:

code
find /var/log/uygulama -name "*.log" -mtime +30 -exec rm {} \;

Silme gibi geri dönüşü olmayan işlemlerden önce komutu -exec rm {} \; kısmı olmadan çalıştırıp çıktıya göz atmak güvenli bir alışkanlıktır.

Uyarı: Üretim sunucusunda -delete veya -exec rm kullanmadan önce sonuç listesini mutlaka kontrol edin. Yanlış bir dizin ya da hatalı bir koşul, önemli dosyaların silinmesine yol açabilir.

Dosya Üzerinde Arama Nasıl Yapılır?

Dosyanın içindeki metni aramak için grep kullanılır. Söz dizimi grep [seçenekler] "aranan ifade" dosya biçimindedir ve ifadenin geçtiği satırları ekrana basar.

code
grep "error" /var/log/syslog

Sık kullanılan seçenekler şunlardır:

SeçenekGörevi
`-i`Büyük/küçük harf farkını yok sayar
`-n`Satır numaralarını gösterir
`-r`Dizinleri alt klasörleriyle birlikte tarar
`-v`İfadeyi içermeyen satırları gösterir
`-c`Eşleşen satır sayısını verir
`-l`Yalnızca eşleşen dosya adlarını listeler
`-E`Genişletilmiş düzenli ifade kullanır

Bir dizindeki tüm dosyalarda metin aramak

Örneğin bir sitenin kodunda eski bir alan adının nerede geçtiğini bulmak için:

code
grep -rn "eskialanadi.com" /var/www/site

Bu komut, eşleşen dosyayı, satır numarasını ve satırın kendisini birlikte gösterir. Taşıma veya alan adı değişikliği sonrası kalan bağlantıları temizlerken oldukça işe yarar.

Boru (pipe) ile grep kullanmak

grep yalnızca dosyalarla sınırlı değildir; başka bir komutun çıktısını da süzebilir:

code
ps aux | grep nginx

Bu örnek, çalışan süreçler arasında yalnızca nginx ile ilgili olanları listeler. Aynı mantıkla dpkg -l | grep php gibi kullanımlar yüklü paketleri hızlıca daraltır.

find ve grep Birlikte Nasıl Kullanılır?

İki komutu birleştirmek, dosya türünü ve içeriği aynı anda filtrelemenizi sağlar. Böylece yalnızca ilgilendiğiniz dosya tiplerinde metin araması yapabilirsiniz.

code
find /var/www -type f -name "*.php" -exec grep -l "base64_decode" {} \;

Bu komut, PHP dosyaları içinde base64_decode geçenleri listeler. Şüpheli kod taramasında başlangıç noktası olarak kullanılır; ancak eşleşme tek başına zararlı yazılım anlamına gelmez, meşru eklentiler de bu fonksiyonu kullanabilir.

Büyük dizinlerde daha verimli bir alternatif de xargs kullanmaktır:

code
find /var/www -type f -name "*.conf" | xargs grep -n "ServerName"

Dosya adlarında boşluk olma ihtimali varsa find ... -print0 | xargs -0 grep ... biçimini tercih edin.

Linux'ta Temel Komutlar Nelerdir?

grep ve find öğrenmeye başlamadan önce sunucuda gezinmek ve dosyaları yönetmek için birkaç temel komutu bilmek işi kolaylaştırır.

KomutNe yapar?
`ls`Dizin içeriğini listeler
`cd`Dizin değiştirir
`pwd`Bulunulan dizini gösterir
`cp` / `mv`Dosya kopyalar / taşır veya yeniden adlandırır
`rm`Dosya siler
`mkdir`Yeni dizin oluşturur
`cat` / `less`Dosya içeriğini görüntüler
`tail -f`Dosyanın sonunu canlı izler
`chmod` / `chown`İzin ve sahiplik düzenler
`df` / `du`Disk kullanımını gösterir

tail -f /var/log/nginx/error.log | grep -i "timeout" gibi bir kombinasyon, canlı log akışında yalnızca ilgili hataları görmenizi sağlar. Temel komutları grep ile birleştirmek, günlük sorun gidermenin en pratik yoludur.

Sunucu Yönetiminde Pratik Kullanım Senaryoları

Komutları gerçek durumlarla ilişkilendirmek kalıcı öğrenmeyi kolaylaştırır.

SenaryoÖnerilen yaklaşım
Disk doldu, hangi dosyalar büyük?`find / -type f -size +500M 2>/dev/null`
Sitede hata var, log'da neye bakmalı?`grep -i "fatal" error.log`
Eski yedekleri temizlemek`find /backup -mtime +60 -name "*.tar.gz"`
Yapılandırmada bir ayarı bulmak`grep -rn "memory_limit" /etc`
Yetkisiz izinli dosya denetimi`find /var/www -perm 0777`

2>/dev/null eklemek, "Permission denied" hatalarını gizleyerek çıktıyı okunur hale getirir. Yönetici yetkisi gerektiren aramalarda komutun başına sudo eklemeniz gerekebilir.

Bilgi: Paylaşımlı hosting hesaplarında SSH erişimi her pakette bulunmayabilir. Kendi sunucunuzda (VPS veya dedicated) root yetkisiyle çalıştığınızda bu komutların tüm gücünden yararlanırsınız.

Sık Sorulan Sorular

grep ve find arasındaki fark nedir?

find dosya ve dizinleri adı, boyutu, türü gibi özelliklerine göre bulur. grep ise dosyaların içindeki metni arar. Pratikte önce find ile doğru dosya grubunu seçer, sonra grep ile içeriği incelersiniz.

grep ile büyük/küçük harf duyarsız arama nasıl yapılır?

-i seçeneğini kullanın. Örneğin grep -i "hata" dosya.log komutu "Hata", "HATA" ve "hata" ifadelerinin hepsini bulur. Log dosyalarında farklı yazımlarla karşılaşıldığı için bu seçenek sık tercih edilir.

find komutu çok yavaş çalışıyorsa ne yapılmalı?

Aramayı kök dizin yerine ilgili klasörle sınırlayın ve -type f gibi koşullarla kapsamı daraltın. Dosya adı yeterliyse locate çok daha hızlı sonuç verir. Ağ üzerinden bağlanan disklerde aramalar doğal olarak daha uzun sürer.

Bulunan dosyaları güvenli biçimde nasıl silerim?

Önce komutu silme parametresi olmadan çalıştırıp listeyi kontrol edin. Sonuçtan emin olduktan sonra -delete veya -exec rm {} \; ekleyin. Önemli veriler için işlemden önce yedek almak en sağlıklı yöntemdir.

grep ile birden fazla kelime nasıl aranır?

-E seçeneğiyle dikey çizgi kullanabilirsiniz: grep -E "hata|uyarı|timeout" dosya.log. Bu komut üç ifadeden herhangi birini içeren satırları getirir.

Sunucu Yönetiminde Doğru Altyapı

find ve grep, kendi sunucunuzda tam kontrolle çalıştığınızda en verimli sonucu verir. Netlen İnternet Hizmetleri'nin sunucu, web hosting ve alan adı hizmetlerini inceleyerek projenize uygun altyapıyı değerlendirebilir, teknik ihtiyaçlarınız için netlen.com.tr üzerinden destek ekibiyle iletişime geçebilirsiniz.

İlgili İçerikler

  • SSH ile Sunucuya Bağlanma: Adım Adım Rehber
  • Linux Dosya İzinleri ve chmod Komutu Nasıl Kullanılır?
  • VPS Nedir? Hangi Projeler İçin Uygundur?
  • Sunucu Log Dosyaları Nasıl Okunur ve Analiz Edilir?
  • Linux Sunucuda Disk Doluluğu Nasıl Kontrol Edilir?

Netlen'i Google'da Takip Edin

En güncel rehberlerimize, duyurularımıza ve teknik içeriklerimize Google üzerinden öncelikli ulaşmak için Netlen'i tercih ettiğiniz kaynaklar arasına ekleyin.

GoogleGoogle'da Tercih edilenkaynak olarak ekleyin
linux komutlarıdosya aramametin arama

Bu yazıyı paylaşın

Cenk ŞEKERCİ

Yazar Hakkında

Cenk ŞEKERCİ

Operasyon Yöneticisi

Bulut teknolojileri, ağ altyapıları ve veri merkezi operasyonları üzerine çalışıyorum. Öğrendiğim yeni teknolojileri ve sahada karşılaştığım gerçek deneyimleri anlaşılır şekilde paylaşmayı seviyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları