Supponendo che tu abbia GNU find, lascia che trovi le directory e lascia che bash faccia il 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 fper trovare tutti gli elementi del tipofile, nella cartella corrente e nelle sottocartellecut -d/ -f2per ritagliare la loro cartella specificasortper ordinare l'elenco dei nomi delle cartelleuniq -cper restituire il numero di volte che ogni nome di cartella è stato contato
Questo stampa il conteggio dei file per directory per il livello di directory corrente:
du -a | cut -d/ -f2 | sort | uniq -c | sort -nr