Como contornar a limitação de shell de 'Argument list too long'?

2

Como posso trabalhar com a limitação do shell bash de 'Argument list too long' ao usar curingas de nomes de arquivos que correspondem a uma tonelada de arquivos em / tmp /?

[my-centos4 tmp] rm -rf /tmp/myLocalFiles*
bash: /bin/rm: Argument list too long
    
por WilliamKF 01.02.2011 / 01:48

5 respostas

3

for i in myLocalFiles*; do rm -f $i; done

    
por 02.09.2013 / 21:42
3

Isso é um pouco mais simples do que o jáquer sugerido:

find /tmp -name "myLocalFiles*" -delete
    
por 01.02.2011 / 01:59
2
find /tmp -name "myLocalFiles*" -exec rm -rf {} +
    
por 01.02.2011 / 02:47
2

Para quem não pode usar -delete para encontrar o comando, isso também funciona:

find /tmp -name "myLocalFiles*" -print0 | xargs -0 rm -rf
    
por 01.02.2011 / 17:52
0

Você pode usar Wines cmd

wine cmd
del "Z:\tmp\myLocalFiles*"
exit

A expansão do shell funciona muito bem, mas tem algumas ressalvas. A convenção do Windows nunca sofre com esses problemas, mas coloca o dever no programador. Isso provavelmente é melhor, já que o gravador do shell não pode saber como qualquer programa espera seus dados de entrada.

    
por 28.06.2015 / 13:37