Grrr, comentar requiere 50 rep. Entonces, esta respuesta es en realidad un comentario sobre la respuesta de Chris.
Dado que el interrogador probablemente no se preocupa por todos los directorios, solo por los peores, entonces usar sort es probablemente una exageración muy costosa.
find . -type d |
while
read line
do
echo "$(ls "$line" | wc -l) $line"
done |
perl -a -ne'next unless $F[0]>=$max; print; $max=$F[0]' | less
Esto no es tan completo como su versión, pero lo que hace es imprimir líneas si son más grandes que el máximo anterior, lo que reduce en gran medida la cantidad de ruido impreso y ahorra el gasto del tipo.
La desventaja de esto es que si tiene 2 directorios muy grandes, y el primero tiene 1 inodo más que el segundo, nunca verá el segundo.
Una solución más completa sería escribir un script perl más inteligente que haga un seguimiento de los 10 valores principales vistos e imprima esos al final. Pero eso es demasiado largo para una respuesta rápida por defecto del servidor.
Además, algunas secuencias de comandos perl medianamente más inteligentes le permitirán omitir el ciclo while: en la mayoría de las plataformas, esto ordena los resultados, y eso también puede ser muy costoso para directorios grandes. El tipo ls no es necesario aquí, ya que lo único que nos importa es el conteo.