Linux’ta Dosya Arama: Find ve Locate Komutları ile Rehber

Linux işletim sisteminde dosya arama işlemleri, sistem yönetiminin en kritik yeteneklerinden biridir. Özellikle büyük sunucularda veya karmaşık dizin yapılarında kaybolan dosyaları bulmak için find ve locate komutlarını etkili şekilde kullanabilirsiniz. Bu kapsamlı rehberde, Linux’ta dosya aramanın tüm inceliklerini öğreneceksiniz.

Linux’ta Dosya Arama Yöntemleri

Linux’ta temel olarak iki farklı dosya arama yöntemi bulunur:

  1. Gerçek Zamanlı Arama (find)
  • Dosya sistemini tarayarak anında sonuç verir
  • Daha fazla sistem kaynağı tüketir
  • Detaylı filtreleme imkanı sunar
  1. Önceden Oluşturulmuş Veritabanı (locate)
  • Önbelleklenmiş veritabanını kullanır
  • Çok hızlı sonuç verir
  • Daha az detaylı filtreleme yapabilir

Find Komutu ile Detaylı Dosya Arama

1. Temel Find Kullanımı

find [aranacak_dizin] [kriterler] [işlem]

Örnekler:

find /home -name "belge.txt"       # /home altında belge.txt'yi arar
find / -type f -name "*.conf"      # Tüm sistemde .conf uzantılı dosyaları bulur
find . -name "*.mp3"               # Bulunduğunuz dizinde MP3 dosyalarını arar

2. Dosya Türüne Göre Arama

ParametreAçıklamaÖrnek
-type fSadece dosyaları listelerfind / -type f -name "*.log"
-type dSadece dizinleri listelerfind /var -type d -name "cache"
-type lSembolik linkleri bulurfind /usr -type l -name "python*"

3. Boyut ve Zaman Filtreleri

Boyuta göre arama:

find / -size +10M      # 10MB'dan büyük dosyalar
find /home -size -1G   # 1GB'dan küçük dosyalar

Değişim zamanına göre:

find /var/log -mtime -7   # Son 7 günde değişen dosyalar
find /etc -atime +30      # 30 günden eski erişilen dosyalar

4. İzin ve Sahipliğe Göre Arama

find / -user root         # root kullanıcısına ait dosyalar
find /home -group developers  # developers grubundaki dosyalar
find / -perm 777          # 777 izinli dosyalar

5. Bulunan Dosyalarda İşlem Yapma

find /tmp -name "*.tmp" -delete         # Bulunan dosyaları siler
find /var/log -name "*.log" -exec cp {} /backup/ \;  # Yedekleme yapar
find ~ -empty -exec rm -i {} \;         # Boş dosyaları siler (onaylı)

Locate Komutu ile Hızlı Dosya Arama

1. Locate Temel Kullanımı

locate [dosya_adi]

Örnekler:

locate sshd_config      # ssh yapılandırma dosyasını bulur
locate -i "readme"     # Büyük/küçük harf duyarsız arama

2. Veritabanını Güncelleme

sudo updatedb          # Locate veritabanını günceller

3. Locate ile Gelişmiş Kullanım

locate -c "*.jpg"      # JPG dosyalarının sayısını verir
locate -l 20 "*.conf"  # İlk 20 conf dosyasını listeler
locate -r "log$"       # Düzenli ifade ile log ile biten dosyalar

Find vs Locate: Hangisini Ne Zaman Kullanmalı?

ÖzellikFindLocate
HızYavaşÇok hızlı
GüncellikAnlıkSon updatedb’e kadar
Sistem YüküYüksekDüşük
Karmaşık SorguDesteklerBasit aramalar
Yeni DosyalarBulurupdatedb gerektirir

Kullanım Senaryoları:

  • Find: Yeni oluşturulmuş dosyaları ararken, detaylı filtre gerektiğinde
  • Locate: Hızlı aramalar yaparken, basit dosya ismi sorgularında

Pratik Örneklerle Gerçek Hayat Kullanımı

1. Eski Log Dosyalarını Temizleme

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

2. Büyük Dosyaları Bulma

find / -type f -size +500M -exec ls -lh {} \;

3. Sahipsiz Dosyaları Bulma

find / -nouser -o -nogroup

4. Son Değiştirilen Yapılandırma Dosyaları

find /etc -type f -name "*.conf" -mtime -1

5. Tüm Python Scriptlerini Listeleme

locate -r "\.py$"

Performans İpuçları

  1. Find için:
  • Aramayı mümkün olan en spesifik dizinde başlatın
  • -xdev parametresiyle farklı dosya sistemlerinde arama yapmayın
   find /home -xdev -name "*.txt"
  1. Locate için:
  • Sık sık updatedb çalıştırın (cron job olarak ayarlayabilirsiniz)
  • Büyük veritabanı için locate -S ile istatistiklere bakın

Güvenlik Uyarıları

  1. Root yetkisi gerektiren aramalarda dikkatli olun:
   sudo find / -name "*.password"  # Şifre dosyalarını aramak
  1. Find ile yapılan silme işlemlerinde mutlaka önce test edin:
   find /tmp -name "*.tmp" -print  # Önce listele
   find /tmp -name "*.tmp" -delete # Sonra sil
  1. Locate veritabanının güvenliği:
  • /var/lib/mlocate/mlocate.db dosyası korunmalıdır
  • Yetkisiz kullanıcıların sistemdeki tüm dosya isimlerini görmesini engelleyin

Sonuç

Linux‘ta dosya arama becerileri, her sistem yöneticisi ve geliştirici için vazgeçilmez bir yetenektir. Bu rehberde öğrendiğiniz:

Find komutuyla detaylı dosyalar arama
Locate ile anında sonuç alma
✓ Pratik senaryolarda komut kullanımı
✓ Performans optimizasyon teknikleri

bilgileri sayesinde artık Linux sisteminizde hiçbir dosya kaybolmayacak!

Hemen terminali açın ve bu komutları deneyerek pratik yapmaya başlayın! 🚀


Ek Kaynaklar

Osman Bayrak
Osman Bayrak

Yazılım Mühendisiyim. Teknoloji ve yazılıma meraklıyım.

Articles: 363