Dosyaları verimli bir şekilde aramak, Linux kullanıcıları, geliştiriciler ve sistem yöneticileri için temel bir beceridir. Linux, dosyaları, dizinleri bulmak ve hatta içeriklerini aramak için birden fazla araç ve komut sağlar.

“find” komutu, dosyaları adlarına, türlerine, boyutlarına, değiştirilme zamanlarına ve hatta izinlerine göre bulmak için en çok yönlü araçlardan biridir.

Temel Söz Dizimi

find [path] [options] [expression]

a) Dosya Adına Göre Ara

find /home -name "report.pdf"
  • /home → Arama yolu.

  • -name → Tam dosya adıyla eşleşir (büyük/küçük harf duyarlı).

🔹 Büyük/küçük harf duyarsız arama:

find /home -iname "report.pdf"

b) Uzantıya Göre Ara

find /var/log -type f -name "*.log"
  • -type f → Sadece dosyaları ara.
  • Dizinler için -type d kullanın.

c) Boyuta Göre Ara

find / -size +500M
  • +500M → 500 MB’den büyük dosyalar.
  • -100k → 100 KB’den küçük dosyalar.

d) Değiştirilme Zamanına Göre Ara

find /etc -type f -mtime -7
  • -mtime -7 → Son 7 gün içinde değiştirilmiş dosyalar.
  • 7 günden daha eski dosyaları bulmak için +7 kullanın.

e) Bulunan Dosyalar Üzerinde Komutları Çalıştır

find /var/log -name "*.log" -exec gzip {} ;
  • /var/log içindeki tüm .log dosyalarını sıkıştırır.

f) Birden Fazla Koşulu Birleştir

find /home -type f ( -name "*.pdf" -o -name "*.docx" ) -size +1M
  • 1 MB’den büyük PDF veya DOCX dosyalarını arar.

“locate” Komutuyla Daha Hızlı Arama(Yüksek Performans)

find“dan farklı olarak, “locate” neredeyse anında aramalar için önceden oluşturulmuş bir veritabanı kullanır.

Veritabanını Kur ve Güncelle

sudo apt install mlocate # Debian/Ubuntu
sudo yum install mlocate # CentOS/RHEL
sudo updatedb # Update locate database

Kullanım

locate report.pdf

🔹 Büyük/küçük harf duyarsız arama:

locate -i report.pdf

🔹 Sonuç sayısını sınırlama:

locate -n 20 nginx

⚠️ İpucu: Arama yapmadan önce veritabanını yenilemek için her zaman sudo updatedb komutunu çalıştırın.

grep ile Dosyaların İçinde Arama

Eğer dosyaların içinde metin desenleri bulmanız gerekiyorsa, grep kullanın.

Temel Arama

grep "error" /var/log/syslog
  • /var/log/syslog içinde “error” kelimesini bulur.

Kapsamlı Arama

grep -rnw '/etc' -e "root"
  • -r → Kapsamlı arama.
  • -n → Satır numaralarını göster.
  • -w → Tam kelimeyle eşleş.

Regex ile Ara

grep -E "([0-9]{3})-[0-9]{3}-[0-9]{4}" *.txt
  • .txt dosyalarında telefon numaralarını bulur.

“whereis” ve “which” Kullanımı

a) Çalıştırılabilir İkili Dosyaları Bul

whereis python
  • İkili, man sayfası ve kaynak konumlarını gösterir.

b) Tam Çalıştırılabilir Yolu Bul

which python3
  • Çalıştırılabilir dosyanın tam yolunu çıktılar.

 fd ile Arama — find için Modern Bir Alternatif 🚀 (Tavsiye Edilir)

fd, find için daha hızlı, kullanıcı dostu bir alternatiftir.

fd’yi Kur

sudo apt install fd-find # Ubuntu/Debian
sudo dnf install fd-find # Fedora

Örnekler

fd report.pdf
  • Varsayılan arama yolu: geçerli dizin.

fd -e log error
  • .log uzantısına sahip error adlı dosyaları arar.

fd -t d backup
  • “backup” adlı dizinleri bulur.

 fzf ile Arama (Etkileşimli Bulanık Bulucu) 🔎

fzf, gerçek zamanlı bir arama arayüzü sağlar.

fzf’yi Kur

sudo apt install fzf

Kullanım

fzf
  • Etkileşimli bir arama UI’si açar.
  • Sonuçları anında filtrelemek için yazmaya başlayın.

 Büyük Dosya Sistemleri için Performans İpuçları

  • Gereksiz dizinleri hariç tutun:

find / -path "/proc" -prune -o -name "*.conf" -print
  • Aramayı hızlandırmak için derinliği sınırlayın:

find /var -maxdepth 2 -name "*.log"
  • Mümkünse find yerine locate kullanın — çok daha hızlıdır.
  • Canlı içerik araması için grep ile birleştirin:
grep -r "DATABASE_URL" $(locate .env)

 Güvenlik Hususları

  • Gerekmedikçe sudo kullanmaktan kaçının — hassas dosyaları açığa çıkarabilir.
  • Çok kullanıcılı ortamlarda grep ve locate aramalarını kısıtlayın.
  • Hassas dizinlerde izinleri doğru tutun.

Sonuç

Linux, dosyaları ve içerikleri verimli bir şekilde bulmak için güçlü ve esnek araçlar sunar.

  • Gelişmiş koşullu aramalar için find kullanın.
  • Anlık sorgular için locate kullanın.
  • Dosyaların içinde arama yaparken grep kullanın.
  • Daha iyi kullanılabilirlik ve performans için fd ve fzf gibi modern araçları deneyin.

Büyük ölçekli ortamlarda, find, grep ve locate gibi indeksli aramaların birleştirilmesi, hız ve hassasiyet arasında en iyi dengeyi sunar.