Eu tenho um diretório com cerca de 100.000 arquivos. ls -f trava por mais de um minuto. Corri strace, e imediatamente comecei a ver getdents, então ls está claramente lendo o diretório. Também vejo muitas chamadas para brk, então ls está claramente protegendo as coisas na memória. Eu escrevi um programa simples que chama readdir e gera nomes de arquivos, e ele responde imediatamente. Mas ls -f não fornece saída. O que da? Eu pensei que o ponto principal de -f é que ele faz com que o ls não faça nada além de readdir. Existe uma maneira portátil e confiável de listar o conteúdo de um diretório? (Note, isto é sl dos coreutils do gnu no Linux.)
-EDITAR-
Havia um alias no lugar, mas "/ bin / ls -1f> / dev / null" leva de 8 a 15 segundos, "/ bin / ls -1fx> / dev / null" leva de 4 a 11 segundos, mas um programa simples isso apenas readdir leva 0,011 segundos. O que preciso fazer para que os gnus não sejam ruins?