Tenho mais de 100.000 arquivos em um diretório no meu MacOS X e parece que é lento para o meu script ler um arquivo neles.
Existe alguma limitação ou recomendação para ter tantos arquivos? Devo dividi-los em alguns diretórios?
A limitação que encontrei foi que não posso mv * foo
para todos os 100.000 arquivos. Ele mostra um erro, dizendo "argumento muito longo". Funciona com aproximadamente menos de 20.000 arquivos.
*
ou ?
como parte de um argumento para um comando, o sistema operacional pesquisa no diretório inteiro por arquivos correspondentes (lento) e, em seguida, substitui o argumento por uma lista de todos os arquivos correspondentes (longos), que são transmitidos para o diretório comando. Você pode fazer melhor com um loop ou com vários comandos mv, por exemplo mv a* foo && mv b* foo
,.