Não é uma aceleração fundamental, mas pelo menos algo :)
find . -printf \\n | wc -l
Você realmente não precisa passar a lista de nomes de arquivos, apenas as novas linhas são suficientes. Essa variante é cerca de 15% mais rápida no meu Ubuntu 12.04.3 quando os diretórios são armazenados em cache na RAM. Além disso, essa variante funcionará corretamente com nomes de arquivos contendo novas linhas.
Curiosamente, essa variante parece ser um pouco mais lenta que a acima:
find . -printf x | wc -c
Caso especial - mas muito rápido
Se o diretório estiver em seu próprio sistema de arquivos, você pode simplesmente contar os inodes:
df -i .
Se o número de diretórios e arquivos em outros diretórios que não o contado não mudar muito, basta subtrair esse número conhecido do df -i
resultado atual . Dessa forma, você poderá contar os arquivos e diretórios muito rapidamente.