Чистий розчин баш:
shopt -s nullglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} (non-hidden) directories"
Якщо ви також хочете порахувати приховані каталоги:
shopt -s nullglob dotglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} directories (including hidden ones)"
Зауважте, що це також буде рахувати посилання на каталоги. Якщо ви цього не хочете, з цим методом трохи складніше.
Використання find:
find /path/to/directory -type d \! -name . -prune -exec printf x \; | wc -c
Підхід полягає в тому, щоб виводити xstdout кожен раз, коли знайдеться каталог, а потім використовувати wcдля підрахунку кількості символів. При цьому буде підраховано кількість усіх каталогів (включаючи приховані), за винятком посилань.
Методи, представлені тут, - це безпечний Wrt для смішних символів, які можуть з'являтися у назвах файлів (пробіли, нові рядки, глобальні символи тощо).