xargs; Como e quando?

1

O que exatamente é xargs ?

Como você o usa?
Quando seria considerado pragmático ou apropriado para isso?

    
por tjt263 15.12.2015 / 09:00

2 respostas

3

xargs recebe entrada de sua entrada padrão para construir comandos com essa entrada como argumentos. É muito útil quando o comando a seguir pode receber apenas um número limitado de argumentos e você tem um grande número de argumentos para processar.

A entrada é normalmente delimitada por espaços em branco. Como o xargs tem que processar nomes de arquivos com muita freqüência, existe um parâmetro -0 que lê a entrada delimitada por byte nulo. Assim, até mesmo nomes de arquivos com novas linhas e espaços são processados corretamente.

No entanto, na maioria dos kernels, o número de caracteres em um comando (e seus argumentos e parâmetros) é limitado. Nesses casos, o xargs divide os argumentos e executa várias execuções do comando interno para evitar tais erros. Também é possível especificar quantos argumentos cada chamada deve ter.

    
por 15.12.2015 / 09:22
3

O uso típico de xargs é com um pipe e como um substituto para um loop.

Vamos considerar um exemplo em que você tem um script onde, em algum momento, um programa imprime uma lista de arquivos que você deve remover. Você poderia escrever um loop:

for i in $(program); do
    rm ${i}
done

Mas você também pode escrever um forro com xargs:

program | xargs rm
    
por 15.12.2015 / 09:30