Quando as opções dadas aos xargs conflitam, a ordem pode ser importante.
IEEE Std 1003.1-2008, Edição 2016 / Especificações de base de grupo aberto Edição 7 adicionado o seguinte texto 1 para a especificação de xargs:
The -I, -L, and -n options are mutually-exclusive. Some implementations use the last one specified if more than one is given on a command line; other implementations treat combinations of the options in different ways.
Isto codifica o comportamento de muitas implementações de xargs, voltando à versão original no PWB / Unix, cujo página man diz
When there are flag conflicts (e.g., -l vs. -n), the last flag has precedence.
Na versão GNU dos xargs, -L
desativa qualquer opção anterior -I
. Então, no seu segundo exemplo,
echo foo | xargs -I '{}' -L 1 echo '{}'
{}
é apenas um argumento comum passado para echo
, sem nenhuma substituição sendo feita.
[1] Em comparação com IEEE Std 1003.1, edição 2004 / Open Group Especificações Básicas Edição 6 .