Argument list too long

quarta-feira, 8 de julho de 2009

Olá.

Caso, ao tentar remover inúmeros arquivos, se depare com o erro:

/bin/rm Argument list too long

Existe uma dica interessante que é:

for (variável) in (argumento); do rm $(variável); done

Exemplo 1:

Para apagar todos os arquivos que possuam a extensão .mail:

for A in *.mail; do rm $A; done

Exemplo 2:

Para apagar todos os arquivos que tenham 2009, no nome:

for B in *2009*; do rm $B; done

Incremente o rm com seus argumentos, visando facilitar ainda mais a operação.

Simples e bastante eficaz.

[]s

Referência: Viva o Linux

Abraço.

2 comentários:

Fabiano O. Souza disse...

Pode-se também usar o find.

Ex.:
find . -type f -iname '.mail' -exec rm {} \;

ou

find . -type f -iname '.mail' -maxdepth 1 -exec rm {} \;

maxdepth - É o nivel de diretório que o find vai procurar.

Phoenix disse...

É isso aí... quanto mais soluções, melhor.

O Gustavo também mandou a sua:

ls -1 -Q | xargs rm -f

[]s