Como faço para o xargs me mostrar as linhas de comando geradas sem executá-las?


17

Um número razoável de comandos linux possui uma opção de execução a seco que mostra o que eles farão sem fazer isso. Não vejo nada na página de manual do xargs que faça isso e nenhuma maneira óbvia de emular isso.

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

Estou esquecendo de algo?


o que exatamente você está tentando fazer?
Rahul

Respostas:


16

Colocar um echona frente do comando para executar?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e

5
(É claro que isso é apenas uma solução simples que funciona em casos triviais. A saída será ambígua se os parâmetros contiverem espaços ou caracteres de controle.
Precisávamos de

E se você está tentando executar a seco echo? :)
mbigras

31

Você pode se beneficiar das bandeiras -pou -t.

xargs -pou xargs --interactiveimprimirá o comando a ser executado e solicitará a entrada (s / 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 -tou xargs --verboseimprimirá cada comando e execute-o imediatamente:

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

% ls
list
one
three
two

1
resposta excelente com ambos -pe -topções. excelentes exemplos. obrigado!
JCotton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.