"avec des noms lus à partir de l'entrée standard" signifie que xargs
prend les données entrant sur son entrée standard, les divise et les utilise pour exécuter la commande donnée dans ses arguments. Par défaut, il se fractionne sur les blancs ou les sauts de ligne et s'exécute echo
avec autant d'arguments que possible.
L' -0
option de votre exemple indique xargs
de diviser son entrée sur des octets nuls au lieu de blancs ou de sauts de ligne. Combiné avec find
des -print0
, cela permet de gérer correctement les noms de fichiers contenant des blancs ou des nouvelles lignes.
L' -I
option change la façon dont les nouvelles lignes de commande sont construites. Au lieu d'ajouter autant d'arguments que possible à la fois, xargs
prendra un nom à la fois de son entrée, recherchez le jeton donné ( {}
ici) et remplacez-le par le nom.
Dans votre exemple, {}
n'est pas présent dans le modèle de commande donné à xargs
, donc est en xargs
fait chargé de s'exécuter echo
sans argument, une fois pour chaque nom de fichier qui lui est donné par find
. Pour voir cela, déposez le wc
:
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
Vous verrez une série de lignes vides ... Comparez cela avec
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo {}
et
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0 echo
et
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0
pour mieux comprendre.