encontre o comando com \; \+ e +

encontre o comando com \; \+ e +

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

informação relacionada