Como faço para obter xargs para me mostrar as linhas de comando que está gerando sem executá-las?

7

Um bom número de comandos do Linux tem uma opção de execução a seco que mostrará o que eles farão sem fazê-lo. Não vejo nada na página de manual do xargs que faça isso e nenhuma maneira óbvia de imitá-lo.

(meu caso de uso específico está solucionando problemas de pipelines longos, embora tenha certeza de que há outros)

Estou sentindo falta de algo?

    
por Andrew 03.08.2016 / 19:29

2 respostas

9

Coloque um echo na frente do comando para executar?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e
    
por 03.08.2016 / 19:33
10

Você pode se beneficiar dos -p ou -t flags.

xargs -p ou xargs --interactive imprimirá o comando a ser executado e solicitará a entrada (y / n) para confirmar antes de executar o comando.

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -t ou xargs --verbose imprimirá cada comando e, em seguida, o executará imediatamente:

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two
    
por 07.03.2018 / 17:53

Tags