Supponendo che tu voglia solo un conteggio ricorsivo di file, non directory e altri tipi, qualcosa del genere dovrebbe funzionare:
find . -maxdepth 1 -mindepth 1 -type d | while read dir; do
printf "%-25.25s : " "$dir"
find "$dir" -type f | wc -l
done
Questo compito mi ha affascinato così tanto che volevo trovare una soluzione da solo. Non ci vuole nemmeno un ciclo di tempo e MAY essere più veloce nella velocità di esecuzione. Inutile dire che gli sforzi di Thor mi hanno aiutato molto a capire le cose in dettaglio.
Quindi ecco il mio:
find . -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l)" file\(s\)' \;
Sembra modesto per un motivo, perché è molto più potente di quanto sembri. :-)
Tuttavia, se intendi includerlo nel tuo .bash_aliases
file, deve assomigliare a questo:
alias somealias='find . -maxdepth 1 -mindepth 1 -type d -exec sh -c '\''echo "{} : $(find "{}" -type f | wc -l)" file\(s\)'\'' \;'
Nota la gestione molto complicata dei singoli nidificati citazioni. E no, non lo è possibile utilizzare le virgolette doppie per il sh -c
argomento.
find . -type f | cut -d"/" -f2 | uniq -c
Elenca cartelle e file nella cartella corrente con un conteggio dei file trovati sotto. IMO veloce e utile. (i file vengono visualizzati con conteggio 1).