find ile boş dosya ve dizin tespiti

0 ردود 2 مشاهدتان
المقيّمون
المشاركون
صاحب الموضوع #1
find ile boş dosya ve dizin tespiti

Giriş ve neden önemli
Bir sunucu veya geliştirme makinesinde, disk alanını etkileyen veya gereksiz dosyaların birikmesini önlemek için boş dosya ve dizinleri tespit etmek sıkça kullanılan bir ihtiyaçtır. Boş dosyalar çoğu zaman log dosyalarının yanlışlıkla oluşturduğu, dolan oluşmuş kısa kayıtlar ya da eski proje dosyaları olabilir. Boş dizinler ise güvenlik ve bakım açısından gereksiz yer kaplar; çoğu durumda silinmeleri güvenli değildir ancak doğru şekilde belirlenebilirler. Bu yüzden find komutu ile hedeflenen koşulları net biçimde ifade etmek, hem hatayı önler hem de süreçleri otomatikleştirmek adına değerlidir.

Boş dosyaları bulmak
Boş dosyaları ararken iki tip durum olabilir: gerçekten 0 byte olanlar ve sadece içeriği boş olanlar (yedekler, gizli meta dosyaları vb.). Temel yaklaşım şu şekildedir:
كود
1find /hedef/kök -type f -empty

  • -type f: sadece dosyaları hedefler.
  • -empty: boyutu 0 olan dosyaları seçer.

İstersen belirli bir süreye ait olmayan dosyaları da daraltabilirsin; örneğin sadece son 30 gün içinde değiştirilmemiş dosyalar için:
كود
1find /hedef/kök -type f -empty -mtime +30


Boş dizinleri bulmak
Boş dizinler için de benzer bir yaklaşım uygulanır:
كود
1find /hedef/kök -type d -empty

Bu komut, içinde hiçbir dosya veya alt dizin bulunmayan dizinleri getirir. Büyük dosya ağaçlarında bazı dizinler ısrarla boş değildir ama kullanıcıların görmesi gerekenler için faydalıdır. İkisini bir arada görmek istersen şu şekilde kullanabilirsin:
كود
1find /hedef/kök \( -type f -empty \) -o \( -type d -empty \) -print


Sonuçları işleştirme ve güvenlik
Çıktıyı doğrudan silmek riskli olabilir; çoğu durumda önce doğrulama veya bir rapor üretmek daha güvenli. Örneğin:
كود
1find /hedef/kök \( -type f -empty \) -print -exec ls -l {} \;

veya temizlemek yerine listeleyip onay için kaydet:
كود
1find /hedef/kök \( -type f -empty \) -print > /tmp/empty_files.txt

Dizinleri temizlerken de dikkatli olmak gerekir; yanlışlıkla önemli bir boş olmayan dizin silinirse altındaki yapıyı da kaybedebilirsin. Ayrıca kök dizininde çalışırken geniş kapsamlı -prune kullanımlarıyla gereksiz çıktıları filtrelemek performansı artırır:
كود
1find / -path /proc -prune -o -type d -empty -print


[Kapanış]
Boş dosya ve dizin tespitinde find komutu esneklik ve güvenilirlik sağlar; özellikle otomasyon skriptlerinde raporlama ve gereksiz temizleme süreçlerinde temel araç haline gelir. Bu konudaki deneyimlerini ve karşılaştığın ilginç durumları paylaşabilirsin.

يجب تسجيل الدخول للرد.

المستخدمون الذين يشاهدون هذا الموضوع (الإجمالي: 1, الأعضاء: 1, الضيوف: 0)
الإجمالي: 1 (الأعضاء: 1, الضيوف: 0)
0 اقتباسات محددة