Como posso fazer com que este comando java atue em cada arquivo encontrado por um comando find?

Como posso fazer com que este comando java atue em cada arquivo encontrado por um comando find?

Eu tenho esse comando dentro de um script de shell Bash, cuja intenção é aplicar um comando java,compressor html, para cada arquivo HTML encontrado em um diretório:

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

No entanto, embora a saída na linha de comando pareça indicar que ele está encontrando cada arquivo e fazendo algo com ele, na verdade não está gravando os resultados nos arquivos.

De acordo com a documentação do htmlcompressor, o uso é este:

Uso: java -jar htmlcompressor.jar [opções] [entrada]

Então deveria haver um arquivo de entrada nomeado no final, mas pensei que o findcomando cuidasse disso. Parece que estou errado sobre isso, no entanto.

O que posso fazer para que ele realmente atue nos arquivos que encontro?

Responder1

O que você forneceu parece estar correto; você pode verificar se javaestá sendo invocado corretamente inserindo echono comando:

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

(assumindo um sistema compatível com POSIX que possui versões não integradas de shell integrados no padrão PATH).

Além disso, você pode querer executar um dos comandos resultantes manualmente para verificar se está funcionando corretamente.

informação relacionada