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 f
pour trouver tous les éléments de typefile
, dans le dossier et les sous-dossiers actuelscut -d/ -f2
pour découper leur dossier spécifiquesort
pour trier la liste des noms de dossiersuniq -c
pour 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