Suponiendo que tiene GNU find, deje que busque los directorios y deje que bash haga el resto:
find . -type d -print0 | while read -d '' -r dir; do
    files=("$dir"/*)
    printf "%5d files in directory %s\n" "${#files[@]}" "$dir"
done
 find . -type f | cut -d/ -f2 | sort | uniq -c
 find . -type fpara encontrar todos los elementos del tipofile, en la carpeta y subcarpetas actualescut -d/ -f2para recortar su carpeta específicasortpara ordenar la lista de nombres de carpetasuniq -cpara devolver el número de veces que se ha contado cada nombre de carpeta
Esto imprime el recuento de archivos por directorio para el nivel de directorio actual:
du -a | cut -d/ -f2 | sort | uniq -c | sort -nr