Suponiendo que solo desea un recuento recursivo de archivos, no directorios y otros tipos, algo como esto debería funcionar:
find . -maxdepth 1 -mindepth 1 -type d | while read dir; do
printf "%-25.25s : " "$dir"
find "$dir" -type f | wc -l
done
Esta tarea me fascinó tanto que quería encontrar una solución yo mismo. Ni siquiera toma un ciclo de tiempo y MAY ser más rápido en velocidad de ejecución. No hace falta decir que los esfuerzos de Thor me ayudaron mucho a entender las cosas en detalle.
Así que aquí está el mío:
find . -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l)" file\(s\)' \;
Parece modesto por una razón, porque es mucho más poderoso de lo que parece. :-)
Sin embargo, si tiene la intención de incluir esto en su .bash_aliases
archivo, debe tener este aspecto:
alias somealias='find . -maxdepth 1 -mindepth 1 -type d -exec sh -c '\''echo "{} : $(find "{}" -type f | wc -l)" file\(s\)'\'' \;'
Tenga en cuenta el manejo muy complicado de single anidado cotizaciones. Y no, no es no posible usar comillas dobles para el sh -c
argumento.
find . -type f | cut -d"/" -f2 | uniq -c
Enumera las carpetas y los archivos de la carpeta actual con un recuento de los archivos que se encuentran debajo. OMI rápida y útil. (los archivos se muestran con la cuenta 1).