você está aqui: Home  → Arquivo de Mensagens

O comando xargs (2)

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 21 de Agosto de 1997

Qual a diferença entre os comandos abaixo?

  % find . -user queiroz  -exec ls {} \;
  % find . -user queiroz -print | xargs ls

A diferença é que no primeiro find o comando ls é executado uma vez para cada arquivo encontrado. Se forem encontrados 1000 arquivos o comando ls será executado 1000 vezes.

Já no segundo exemplo, com a saída do find redirecionada para o comando xargs, o comando ls será executado sobre um grupo de arquivos de cada vez e não uma vez para cada arquivo. O que irá determinar o número de vezes que o comando xargs executará o comando ls é justamente o tamanho da linha de comandos. O comando xargs irá dividir a saída gerada pelo comando find em blocos compatíveis com a capacidade do sistema de maneira a que não ocorra um erro quando da execução, em nosso caso, do comando ls (ver a dica de ontem).

Em outras palavras, suponhamos que o comando find descubra 2000 arquivos sobre os quais o comando xargs deverá executar o comando ls. O limite máximo de arquivo sobre os quais o comando ls pode atuar é de 500. O comando xargs automaticamente realizará a divisão desta entrada em quatro blocos de 500 arquivos.

Concluindo, o comando xargs é bem mais eficiente do que a diretiva -exec do comando find, por exigir menos recursos computacionais para executar a mesma tarefa. uma vez sobre todos os arquivos encontrados.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script