"com nomes lidos na entrada padrão" significa que xargs
recebe os dados que entram na entrada padrão, os divide e os usa para executar o comando fornecido em seus argumentos. Por padrão, ele se divide em espaços em branco ou em novas linhas e é executado echo
com o maior número possível de argumentos por vez.
A -0
opção 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
's -print0
, isso permite que nomes de arquivos contendo espaços em branco ou novas linhas sejam manipulados corretamente.
A -I
opção altera a maneira como as novas linhas de comando são construídas. Em vez de adicionar o maior número possível de argumentos por vez, xargs
terá um nome de cada vez da entrada, procure o token fornecido ( {}
aqui) e substitua-o pelo nome.
No seu exemplo, {}
não está presente no modelo de comando fornecido xargs
, portanto, xargs
é instruído a executar echo
sem argumento, uma vez para cada nome de arquivo fornecido por find
. Para ver isso, solte o wc
:
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.