Comando xargs no Linux (executa comando como argumento) [Guia Básico]

O comando xargs no Linux executa o comando ou programa e passa como argumento para esse comando o que foi recebido como entrada padrão. 

Ele resolve o problema de pegar a saída padrão de um programa e usá-la como argumentos ou parâmetros para um comando ou programa.

As opções mais frequentes são:

  • -p: Pergunte ao usuário se o comando deve ser executado antes de fazê-lo 
  • -r: Não execute o comando quando receber linhas vazias
  • -t: Mostre o comando na tela antes de executá-lo 

Veja a lista de supermercado:

$ cat supermercado 
arroz
feijão
carne
batata
alface
tomate
arroz
carne 

Agora vamos fazer o xargs receber como entrada padrão esta lista, e executar o comando echo com os itens da lista como parâmetro:

$ cat supermercado | xargs echo

O que o xargs faz é como se escrevesse o seguinte comando:

$ echo arroz feijão carne batata alface tomate arroz carne 

Da mesma forma, pode-se criar diretórios com os nomes dos itens da lista. Neste exemplo o comando xargs irá criar um diretório executando o mkdir com o nome de cada item contido no arquivo supermercado:

$ cat supermercado | xargs mkdir

Como você pode ver, o xargs pode ser muito útil para automatizar várias tarefas. 

Neste exemplo, lista-se todos os arquivos com extensão txt, e depois utiliza-se o xargs para compactar cada um deles:

$ ls -1 *.txt  | xargs gzip 

A opção “-t” do xargs é interessante, pois ele escreve o comando que irá executar:

$ ls -1 *.txt  | xargs -t gzip
gzip teste1.txt teste2.txt teste3.txt 

O xargs pode também ser usado para baixar vários arquivos de uma lista de links:

$ cat links.txt | xargs wget

A opção “-i” combinada com { } pode ser usada para passar argumentos no local correto de um comando:

$  ls /etc/*.conf | xargs -i cp {} /home/learnlinux/conf

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe