¿Cómo puedo hacer que este comando java actúe en cada archivo encontrado mediante un comando de búsqueda?

¿Cómo puedo hacer que este comando java actúe en cada archivo encontrado mediante un comando de búsqueda?

Tengo este comando dentro de un script de shell Bash, cuya intención es aplicar un comando java,compresor html, a cada archivo HTML que se encuentra en un directorio:

find $DIR -type f -name '*.html' -exec java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;

Sin embargo, si bien la salida en la línea de comando parece indicar que está buscando cada archivo y haciendo algo con él, en realidad no está escribiendo los resultados en los archivos.

Según la documentación de htmlcompressor, el uso es este:

Uso: java -jar htmlcompressor.jar [opciones] [entrada]

Entonces se supone que debe haber un archivo de entrada con el nombre al final, pero pensé que el findcomando se encargó de eso. Aunque parece que me equivoco en eso.

¿Qué puedo hacer para que realmente actúe sobre los archivos que encuentro?

Respuesta1

Lo que has proporcionado parece ser correcto; puedes verificar que javase está invocando correctamente insertando echoen el comando:

find $DIR -type f -name '*.html' -exec echo java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;

(suponiendo un sistema compatible con POSIX que tenga versiones no integradas de shell integradas en el estándar PATH).

Más allá de eso, es posible que desees ejecutar uno de los comandos resultantes manualmente para verificar que esté funcionando correctamente.

información relacionada