En supposant que vous ayez GNU find, laissez-le trouver les répertoires et laissez bash faire le reste :
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 fpour trouver tous les éléments de typefile, dans le dossier et les sous-dossiers actuelscut -d/ -f2pour découper leur dossier spécifiquesortpour trier la liste des noms de dossiersuniq -cpour retourner le nombre de fois où chaque nom de dossier a été compté
Cela imprime le nombre de fichiers par répertoire pour le niveau de répertoire actuel :
du -a | cut -d/ -f2 | sort | uniq -c | sort -nr