El problema es que jar tvf
sólo permite un archivo que se aprobó en.
El bucle se ejecuta los archivos uno por uno
jar tvf 1.jar; jar tvf 2.jar; ...
Sin embargo, xargs intenta ajustar tantos argumentos en una línea como sea posible. Por lo tanto, está tratando los siguientes:
jar tvf 1.jar 2.jar ...
Esto se puede comprobar mediante la colocación de un eco en su comando:
for f in `find . -name "*.jar"`; do echo jar tvf $f; done
find . -name "*.jar" | xargs echo jar tvf
La solución correcta es la xargs dicen utilizar solamente un parámetro por comando:
find . -name "*.jar" | xargs -n 1 jar tvf
o
find . -name "*.jar" | xargs -i jar tvf {} # Find style parameter placement
Sí, gracias. – Synesso