Comando XARGS no Linux com exemplos úteis
- 2646
- 276
- Mr. Mitchell Hansen
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
- « Como configurar o servidor DNS (Bind) no CentOS/RHEL 7/6/5
- Instale a ferramenta FSNIPER (Monitoramento de Diretório) em CentOS, Rhel e Fedora »