Autor del tema #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:
CÓDIGO
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:
CÓDIGO
1find /hedef/kök -type f -empty -mtime +30


Boş dizinleri bulmak
Boş dizinler için de benzer bir yaklaşım uygulanır:
CÓDIGO
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:
CÓDIGO
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:
CÓDIGO
1find /hedef/kök \( -type f -empty \) -print -exec ls -l {} \;

veya temizlemek yerine listeleyip onay için kaydet:
CÓDIGO
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:
CÓDIGO
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.

Debes haber iniciado sesión para responder.

Usuarios que están viendo este tema (Total: 2, Miembros: 2, Invitados: 0)
Total: 2 (miembros: 2, invitados: 0)
0 citas seleccionadas