Linux’ta Bir Dosya Nasıl Aranır

AMDAMD Ryzen 5 4650G 16GB DDR 4 ECC AMD Ryzen 5 4650G Ryzen Dedicated Server Animation
20%
85€ 68€
Order Now

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.

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ı isimlerine, 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özdizimi

find [path] [options] [expression]

a) Dosya Adına Göre Arama

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

  • -name → Tam dosya adıyla eşleşme (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 Arama

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

c) Boyuta Göre Arama

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 Arama

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 Komut Çalıştırma

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ştirme

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

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

find“dan farklı olarak, “locate” neredeyse anlık 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: Aramadan önce veritabanını güncellemek için her zaman sudo updatedb komutunu çalıştırın.

grep ile Dosyaların İçinde Arama

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 → Tüm kelimeyi eşleştir.

Regex ile Arama

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ı Bulma

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

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

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ı ve 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” adında dizinleri bulur.

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

fzf, gerçek zamanlı bir arama arayüzü sunar.

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 aramalar 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 bir kombinasyonu, hız ve hassasiyet arasında en iyi dengeyi sunar.