"con nomi letti dall'input standard" significa che xargsaccetta i dati che arrivano sul suo input standard, li divide e li usa per eseguire il comando dato nei suoi argomenti. Per impostazione predefinita, si divide in spazi vuoti o newline e viene eseguito echocon il maggior numero di argomenti alla volta.
L' -0opzione nell'esempio indica xargsdi dividere l'input su byte null anziché su spazi vuoti o righe. Combinato con find"s" -print0, questo consente di gestire correttamente i nomi di file contenenti spazi vuoti o nuove righe.
L' -Iopzione cambia il modo in cui sono costruite le nuove linee di comando. Invece di aggiungere quanti più argomenti possibili alla volta, xargsprenderà un nome alla volta dal suo input, cerca il token dato ( {}qui) e sostituiscilo con il nome.
Nel tuo esempio, {}non è presente nel modello di comando fornito xargs, quindi in effetti xargsviene eseguito per eseguire echosenza argomenti, una volta per ogni nome file assegnato da find. Per vedere questo, rilasciare il wc:
find . -mindepth 1 -maxdepth 1 -print0 | xargs -0I{} echo
Vedrai una serie di righe vuote ... Confronta con
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
per capire meglio.