Eu vi comandos find da seguinte maneira e me pergunto a diferença entre eles.
find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +
Responder1
Existem duas sintaxes para find exec.
find . -exec [cmd] {} \;
{} É um espaço reservado para o resultado encontrado por find
; Diz que para cada resultado encontrado, o comando cmd é executado uma vez com o resultado encontrado.
É executado assim: cmd resultado1; cmd resultado2; ...; cmd resultado N
find . -exec [cmd] {} \+
{} É um espaço reservado para o resultado encontrado por find
+ Diz que para todos os resultados encontrados, o comando cmd é executado com todos os resultados encontrados.
É executado assim: cmd resultado1 resultado2 ... resultado N
quando devemos usar find exec ; além de +
A ferramenta executada por -exec não aceita vários arquivos como argumento
Executar a ferramenta em tantos arquivos ao mesmo tempo pode consumir muita memória
Queremos começar a obter alguns resultados o mais rápido possível, mesmo que demore mais tempo para obter todos os resultados