Bir dizindeki dosyaları doğru bir şekilde saymak, Bash betiğinde temel bir görevdir. Bu kılavuz, durumunuza en uygun yaklaşımı seçmenize yardımcı olmak için iki yöntemi, güçlü ve zayıf yönlerini vurgulayarak sunmaktadır.
İçerik Tablosu
find
Komutunu Kullanma
find
komutu, isimlerinde boşluk veya özel karakter bulunan dosyalar dahil olmak üzere, dosya sayımı için sağlam ve güvenilir bir çözüm sunar. Çoğu senaryo için önerilen yaklaşımdır.
find . -type f -print0 | wc -l
Açıklama:
find .
: Aramaya geçerli dizinde (.
) başlar. Gerekirse.
yerine belirli bir yol kullanın (örneğin,/path/to/your/directory
).-type f
: Aramayı yalnızca normal dosyalarla sınırlar, dizinleri ve diğer dosya türlerini hariç tutar.-print0
: Dosya adlarını boş karakterle ayırır, boşluk veya özel karakter içeren dosya adlarıyla ilgili sorunları önler. Bu, güvenilirlik için çok önemlidir.| wc -l
: Boş karakterle ayrılmış dosya adları listesini, satırları (ve dolayısıyla dosyaları) sayanwc -l
‘ye iletir.
ls
Komutunu Kullanma
ls
komutu, daha basit ancak daha az sağlam bir dosya sayma yöntemi sağlar. Sadece basit dosya adlarına sahip dizinler için uygundur ve boşluk veya özel karakter içeren dosyalarla çalışırken kullanılmamalıdır.
ls -l | grep "^-" | wc -l
Açıklama:
ls -l
: Dosyaları uzun biçimde listeler, dosya türü bilgilerini gösterir.grep "^-"
: Çıktıyı filtreler, yalnızca tire (-
) ile başlayan satırları seçer, bu da normal bir dosyayı gösterir.wc -l
: Kalan satırları sayar, dosya sayısını temsil eder.
Önemli Not: Dosya adları tire ile başlıyorsa veya grep
kalıbıyla çakışan diğer karakterleri içeriyorsa bu yöntem hatalara yol açabilir. Özellikle üretim ortamlarında güvenilir sonuçlar için find
komutunu kullanın.
Özetle, her iki yöntem de dosyaları sayabilirken, find
komutunun sağlamlığı onu çeşitli senaryolarda doğru ve güvenilir dosya sayımı için tercih edilen seçim haline getirir.