Não é todo sistema ou servidor que dá para automatizar a questão de apagar os logs, ou então, nem sempre é interessante apagá-los automaticamente. Por experiência própria, vez por outra preciso apagar vários arquivos gigantescos (geralmente logs) de uma única vez e a seguinte mensagem é gerada:
/bin/rm Argument list too long (Lista de argumento muito longa)
Bom, caso este seja o seu caso, basta entrar no diretório onde encontram-se os arquivos e executar algumas das alternativas de comando.
Para apagar todos os arquivos que contenham "2008" em seu nome:
$ for a in *2008*; do rm $a; done
Para apagar todos os arquivos que possuam a extensão .log:
$ for a in *.log; do rm $a; done
Espero que seja útil a muitos.
Abraço.
[1] Comentário enviado por
xisberto em 12/03/2008 - 10:15h:
Mais simples, você pode usar o asterisco diretamente no rm:
$ rm *2008*
$ rm *.log
[2] Comentário enviado por
frikasoide em 12/03/2008 - 10:36h:
Ola xisberto, acredito que você ainda não teve problemas no qual se refere essa Dica, no caso, erro de Argument list too long. Pesquise no Google sobre isso e você encontrará diversas pessoas com essa dificuldade. De qualquer forma, obrigado pela participação.
[3] Comentário enviado por
xisberto em 12/03/2008 - 10:58h:
Sim, frikasoide, já tive esse tipo de problema. Mas só agora, lembrando de como eu enfrentei o problema, eu entendi o espírito da sua dica.
Do jeito que usei, eu apenas tentava diminuir o número de argumentos por uma lista menor, mas tinha que passar várias listas em vários comandos rm.
Na sua dica, o comando rm é chamado várias vezes, cada uma com apenas um argumento. Se você tivesse dito isto lá na dica, eu só teria pensado "puxa vida, como fui burro", hehehehe
[4] Comentário enviado por
frikasoide em 12/03/2008 - 11:01h:
Tranquilo xisberto!
Abraço
[5] Comentário enviado por
SMarcell em 12/03/2008 - 13:21h:
Outra alternativa seria utilizando o find em pipe com xargs. Ex.:
find <diretorio> -type f -name "*.log" | xargs -O rm
Desse modo o find passaria a lista de todos os arquivos de log para o xargs que por sua vez, passaria o máximo de argumentos (arquivos) possíveis para o rm sem causar estouro de pilha.
[6] Comentário enviado por
rafagavioes em 12/03/2009 - 21:14h:
caralho!! sempre quis saber disso!!
valeu
[7] Comentário enviado por
sneves em 08/07/2009 - 10:38h:
Muito útil.
Funcionou perfeitamente.
Obrigado.
[]s
[8] Comentário enviado por
W4rl0ck em 21/01/2010 - 20:00h:
Excelente me ajudou muito hoje...
Grato
[9] Comentário enviado por
volcom em 12/05/2010 - 10:46h:
Perfect!
Mas usei pra outro comando:
for dir in /var/virtualmail/* ;do du -h -s $dir; done > /tmp/quotalista.txt
Listei o tamanho total dos diretórios e salvei em um arquivo para uso em um script.
Assim vamos seguindo hehehe
[10] Comentário enviado por
allan_victor em 23/02/2012 - 13:00h:
entre no diretório e execute o seguinte comando
ls | xargs -n1 rm -R