El programa xargs divide las cosas en lotes, para tener en cuenta los límites debido a la longitud máxima de una línea de comandos de Unix. Es aún más eficiente que ejecutar su subcomando de a uno por vez pero, para una larga lista de entradas, ejecutará el comando las veces suficientes para que cada "ejecución" sea lo suficientemente corta como para no causar problemas.
Debido a esto, es probable que vea una línea de salida por "lote" que xargs necesita para ejecutarse.
Debido a que puede que le resulte, la página hombre útil/interesante se puede encontrar en línea aquí: http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs
otra cosa a tener en cuenta (y esto puede ser un error tipográfico en su puesto o mi mala interpretación) es que tiene el "* .txt" sin emparejar/citado. Es decir, tiene
find . -name *.txt | xargs du -hc
donde es probable que desee
find . -name \*.txt | xargs du -hc
La diferencia es que la línea de comandos se puede ampliando el * en la lista de los nombres de archivo que coincidan ... en lugar de pasar el * en encontrar, que lo usará como un patrón.
Hm, ok. Intenté: encontrar. -name * .txt | xargs -n 100000 du -hc Pero eso no parece funcionar; obtengo más subtotales, no menos. Probando encontrar. -name * .txt | xargs -L 1000 du -hc doesnt 'parece funcionar bien tampoco. O "xargs: lista de argumentos demasiado larga" o solo funciona en unos pocos archivos. ¿Alguna otra idea? ¡Gracias! Alex –