Como posso obter esse comando java para agir em cada arquivo encontrado por um comando find?

1

Eu tenho este comando dentro de um script de shell Bash, cuja intenção é aplicar um comando java, htmlcompressor , 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 está localizando cada arquivo e fazendo algo com ele, ele não está realmente gravando os resultados nos arquivos.

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

Usage: java -jar htmlcompressor.jar [options] [input]

Portanto, deve haver um arquivo de entrada no nome no final, mas achei que o comando find cuidou disso. Parece que estou errado sobre isso.

O que posso fazer para que ele realmente atue nos arquivos que eu encontrar?

    
por Questioner 08.04.2012 / 09:04

1 resposta

2

O que você forneceu parece estar correto; você pode verificar se java está sendo invocado corretamente inserindo echo no comando:

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

(supondo um sistema compatível com POSIX corretamente que tenha versões não embutidas de builtins de shell no padrão PATH ).

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

    
por 08.04.2012 / 09:09

Tags