Não há limite (exceto a memória disponível) para o número de arquivos que podem ser expandidos por um bashglobo.
No entanto, quando esses arquivos são passados como argumentos para um comando que é executado (em oposição a uma função ou função interna do shell), você pode executar um limite de execve()chamada do sistema em alguns sistemas. Na maioria dos sistemas, essa chamada do sistema tem um limite no tamanho cumulativo dos argumentos e no ambiente transmitidos a ela, e no Linux também um limite separado no tamanho de um único argumento.
Para mais detalhes, consulte:
Para contornar esse limite, você pode usar (assumindo GNU xargsou compatível):
printf '%s\0' foo* | xargs -r0 rm -f
Acima, como printfé embutido (na bashmaioria das conchas do tipo Bourne), não atingimos o execve()limite. E xargsdividirá a lista de argumentos em quantas rminvocações forem necessárias para evitar a execve()limitação.
Com zsh:
autoload zargs
zargs foo* -- rm -f
Com ksh93:
command -x rm -f foo*