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 f
para encontrar todos los elementos del tipofile
, en la carpeta y subcarpetas actualescut -d/ -f2
para recortar su carpeta específicasort
para ordenar la lista de nombres de carpetasuniq -c
para 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