Tengo un directorio con aproximadamente 100,000 archivos en él. ls -f se cuelga por más de un minuto. Corrí strace e inmediatamente comencé a ver getdents, por lo que ls claramente está leyendo el directorio. También veo muchas llamadas a brk, por lo que ls claramente está guardando cosas en la memoria intermedia. Escribí un programa simple que llama a readdir y genera nombres de archivos, y responde de inmediato. Pero ls -f no proporciona salida. ¿Lo que da? Pensé que el punto de -f es que hace que ls no haga nada más que readdir. ¿Existe una forma portátil y confiable de enumerar el contenido de un directorio? (Tenga en cuenta que esto es ls de coreutils de gnu en Linux).
-EDITAR-
Había un alias en su lugar, pero "/ bin / ls -1f> / dev / null" toma de 8 a 15 segundos, "/ bin / ls -1fx> / dev / null" toma de 4 a 11 segundos, pero un programa simple eso solo readdir toma 0.011 segundos. ¿Qué necesito hacer para que gnu ls no sea una mierda?