Para el directorio actual:
find -type f | wc -l
Esto debería funcionar:
find DIR_NAME -type f | wc -l
Explicación:
-type fpara incluir solo archivos.|(y no¦) redirigefindsalida estándar del comando awcentrada estándar del comando.wc(abreviatura de recuento de palabras) cuenta líneas nuevas, palabras y bytes en su entrada (docs).-lpara contar solo saltos de línea.
Notas:
- Reemplazar
DIR_NAMEcon.para ejecutar el comando en la carpeta actual. - También puede eliminar el
-type fpara incluir directorios (y enlaces simbólicos) en el recuento. - Es posible que este comando cuente de más si los nombres de archivo pueden contener caracteres de nueva línea.
Explicación de por qué su ejemplo no funciona:
En el comando que mostraste, no usas el "Pipe" (| ) para conectar dos comandos, pero la barra rota (¦ ) que el shell no reconoce como un comando o algo similar. Por eso recibes ese mensaje de error.