Na primeira linha, xargs
ainda aguarda o segundo argumento ou o final da entrada. Depois de pressionar Ctrl - D xargs continua com o resto e você verá o 5 x
como argumento único.
Este exemplo pode explicar o comportamento:
(echo "x x x x x"; sleep 5; echo "x") | xargs -n2
Saída:
x x
x x
x x # after 5 seconds
Após o 6º x
na segunda instrução echo
, o fluxo de entrada está concluído e xargs
finalmente tem o segundo argumento, mas até então aguarda os 5 segundos.