Comando XARGS no Linux com exemplos úteis

Comando XARGS no Linux com exemplos úteis

XARGS é um comando linux/unix poderoso para construir e executar linhas de comando a partir de entrada padrão. Ele leva a saída de um comando e passa como argumento de outro comando. O XARGS exige entrada padrão, delimitada por espaços em branco ou newlines, e executa o comando uma ou mais vezes com quaisquer argumentos seguidos de itens. Linhas em branco na entrada padrão são ignoradas.

Sintaxe

XARGS [Opção]… Command [Initial-ARGS]… 

Aqui o comando é executado com argumentos iniciais-ARGs e mais argumentos lidos da entrada.

Opções de comando XARGS

Os comandos XARGS fornecem um número limitado de argumentos da linha de comando, mas o suficiente para utilizar seus recursos.

  • -0, -NULL - Os itens são separados por um espaço nulo, não em branco
  • -A, --arg-File = Arquivo - Leia argumentos do arquivo, não a entrada padrão.
  • -d, - -Delimiter = caractere - Os itens no fluxo de entrada são separados por caracteres, não em branco
  • -E final - Defina uma string como login eof. Se a string encontrada, o restante será ignorado.
  • -L,-max-lines = max-lines - Especifique o número máximo de linhas (não em branco) para tomar como entrada na linha de comando de entrada
  • -n,-max-args = max-args - Especifique argumentos máximos por linha de comando
  • -P,-max-procs = max-procs - Especifique os processos máximos para executar por vez
  • -P, - -interativo - Executar processos interativos com o prompt antes de executar comandos
  • -r, --- não-run-if-exine - Não execute o comando se os argumentos de entrada estiverem vazios.
  • -T, --verbose - Imprima todos os comandos na tela executando -os

Exemplos de comando XARGS

Exemplo 1. Copie o grande número de arquivos para outra pasta.

Algumas vezes, precisamos copiar uma longa lista de arquivos, nesse caso o comando cp falhou com o erro “Lista de argumentos por muito tempo”. Podemos usar Xargs para fazer essa tarefa.

encontre / backup / -Type F | xargs -n1 -i cp /var/www/backup/  
Exemplo 2: Exclua vários arquivos de uma pasta.

Algumas vezes, requisitamos para excluir um grande número de arquivos de uma pasta. Abaixo, o exemplo vai excluir tudo .Arquivos de log do diretório /var /log /log.

encontre/var/www/tmp/-type f | XARGS RM -F  

O comando acima falhou em remover arquivos com espaços em nomeado. Para lidar com espaços no comando xargs, tente abaixo o comando.

encontre/var/www/tmp/-type f -Print0 | XARGS -0 RM -F  
Exemplo 3: Contagem número de linhas em vários arquivos.

Abaixo, o exemplo contará o número de linhas para cada .Arquivo TXT no diretório /opt e seu subdiretório

encontre /opt -name "*.txt "| xargs wc -l  

Para lidar com os arquivos com espaços no nome, use o seguinte comando.

encontre / opt / -name "*.log "-print0 | xargs -0 wc -l  
Exemplo 4: faça um backup de todos os arquivos de configuração.

Se você deseja fazer um backup de todos os arquivos de configuração (extensão .conf) em seu sistema, use o comando abaixo.

encontre / -name "*.Conf "| Xargs Tar CZF Config.alcatrão.gz  
LS -L Config.alcatrão.gz  -rw-r-r--. 1 raiz raiz 193310 1 de abril 13:26 Config.alcatrão.gz 
Exemplo 5. Use o delímetro Custome com XARGS.

Também podemos usar o comando de delemeter personalizado com o comando XARGS, por padrão, ele usa espaço e nova linha como delímetro. Use o parâmetro -d para definir o delímetro.

eco "1,2,3,4,5" | xargs -d, eco  

Saída:

1 2 3 4 5 
Exemplo 6: mostre a saída na linha SePreate com XARGS.

No Exemplo 5, está sendo exibido em linha única, também podemos especificar para mostrar cada saída na linha Seprate.

eco "1,2,3,4,5" | xargs -d, -l 1 eco  

Saída:

1 2 3 4 5 
Exemplo 7: lidar com espaço em branco em nomes de arquivos ou caminho.

Para lidar com espaços em nomes, use -Print0 com o comando find e -0 com o comando xargs como parâmetro.

LINDO /TMP -PRINT0 | xargs -0 -l 1 eco