"com nomes lidos da entrada padrão" significa que xargs
pega os dados que chegam à sua entrada padrão, divide-os e usa-os para executar o comando fornecido em seus argumentos. Por padrão, ele é dividido em espaços em branco ou em novas linhas e executa echo
com o maior número de argumentos possível.
A opção -0
no seu exemplo instrui xargs
a dividir sua entrada em bytes nulos em vez de espaços em branco ou novas linhas. Combinado com find
' -print0
, isso permite que nomes de arquivos contendo espaços em branco ou novas linhas sejam manipulados adequadamente.
A opção -I
altera a maneira como as novas linhas de comando são construídas. Em vez de adicionar tantos argumentos quanto possível por vez, xargs
terá um nome de cada vez de sua entrada, procure o token fornecido ( {}
here) e substitua-o pelo nome.
No seu exemplo, {}
não está presente no modelo de comando dado a xargs
, então em vigor xargs
é instruído a executar echo
sem argumento, uma vez para cada nome de arquivo dado a ele por% código%. Para ver isso, elimine o find
:
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
Você verá uma série de linhas em branco ... Compare isso com
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo {}
e
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0 echo
e
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0
para entender melhor.