Saf bir bash çözümü:
shopt -s nullglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} (non-hidden) directories"
Gizli dizinleri de saymak istiyorsanız:
shopt -s nullglob dotglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} directories (including hidden ones)"
Bunun dizinlere olan bağlantıları da sayacağını unutmayın. Bunu istemiyorsanız, bu yöntemle biraz daha zor.
Kullanarak find:
find /path/to/directory -type d \! -name . -prune -exec printf x \; | wc -c
İşin püf noktası, xher dizin bulunduğunda stdout'a bir çıktı vermek ve ardından wckarakter sayısını saymak için kullanmaktır . Bu, bağlantılar hariç tüm dizinlerin (gizli olanlar dahil) sayısını sayacaktır.
Burada sunulan yöntemlerin tümü, dosya adlarında (boşluklar, satırsonları, glob karakterleri, vb.) Görünebilecek komik karakterler için güvenlidir.