Respuestas:
Puede ser algo como
find . -type f | wc -l
Haría el truco. Pruebe el comando desde la carpeta principal.
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.
Para contar archivos (incluso archivos sin una extensión) en la raíz del directorio actual, use:
ls -l | grep ^- | wc -l
Para contar archivos (incluso archivos sin extensión) de forma recursiva desde la raíz del directorio actual, use:
ls -lR | grep ^- | wc -l
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 resultado tail -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:
$ tree share/some/directory/ | tail -1
558 directories, 853 files
$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files
Si aún no está allí, puede obtenerlo aquí .
find -type f -printf . | wc -c
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.
Use este comando para cada carpeta en la ruta
for D in *; do echo $D; find $D -type f| wc -l; done
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
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 find
Yo iría con esta opción yo mismo:
ls -alR | grep -c ^ -