O PODER DO XARGS

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX
Dica Unix 2875 - 18 de dezembro de 2007
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

O PODER DO XARGS

Não se esqueça do poder do xargs. Por default, em vários sabores de Unix, a linha de comando é limitada a 20 Kbytes.

A maioria dos diretórios excede isto.

Portanto, execute isto : 

% find /tmp -name foo -exec rm \;

isto vai gerar um fork do rm para todos os arquivos achados pelo find. Se ele retornar 1000 arquivos o rm será forkeado 1000 vezes.

Se,

% find /tmp -name foo |xargs rm

para ter o mesmo efeito, o rm é forkeado com uma longa lista de arquivos, e o overhead do sistema é reduzido, e o comando é executado mais rapidamente, e o impacto no sistema é reduzido.

Isto é bem importante se você tem uma lista dos arquivos produzidos por :

% find {blah} > listfile

Se você tem uma lista dos arquivos você pode executar o seguinte comando :

% cat listfile| xargs rm

Isto vai remover todos os arquivos listados. Se

% rm $(cat listfile)

vai falhar caso a listagem seja maior que  ~20K 

-----------------------------------------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE. TODAS AS DICAS SÃO "USADAS POR SEU PROPIO RISCO". UGU ADVERTE PARA TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2007
======================================