Quiero encontrar el recuento total de la cantidad de archivos en una carpeta y todas sus subcarpetas.
command-line
find
top-less
fuente
fuente
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- adopto la impresión para mi solución en lugar de mi eco -exec.Usa el
tree
comando. Es posible que deba instalar eltree
paquete.Enumerará todos los archivos y carpetas en la carpeta dada y un resumen al final.
fuente
Para contar archivos (incluso archivos sin una extensión) en la raíz del directorio actual, use:
Para contar archivos (incluso archivos sin extensión) de forma recursiva desde la raíz del directorio actual, use:
fuente
La forma más rápida y fácil es usarla
tree
. Su velocidad está limitada por su terminal de salida, por lo que si canaliza el resultadotail -1
, obtendrá un resultado inmediato. También puede controlar a qué nivel de directorio le gustan los resultados, utilizando la-L
opción Para salida coloreada, use-C
. Por ejemplo:Si aún no está allí, puede obtenerlo aquí .
fuente
No cuente las líneas de salida de find, porque los nombres de archivo, que contienen 99 líneas nuevas, contarán como 100 archivos.
fuente
Use este comando para cada carpeta en la ruta
fuente
find parece ser más rápido que el árbol, por lo que utilicé a continuación para contar archivos en cada directorio del directorio de trabajo actual (ignorando los archivos en CWD) permitiendo que los directorios tengan espacios:
ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done
fuente
ls
es una muy mala idea.Puedes usar
find . | wc -l
find .
enumerará todos los archivos y carpetas y sus contenidos comenzando en su carpeta actual.wc -l
cuenta los resultados de findfuente
Yo iría con esta opción yo mismo:
fuente