O usuário nessa postagem pode dizer que o sinal +
no final de um comando -exec
é mais rápido, mas não o motivo.
Vamos supor que o comando find
retorne os seguintes arquivos:
/path/to/file1
/path/to/file2
/path/to/file3
O comando normal -exec
( -exec command {} \;
) é executado uma vez para cada arquivo correspondente. Por exemplo:
find ... -exec mv {} /target/ \;
Executa:
mv /path/to/file1 /target/
mv /path/to/file2 /target/
mv /path/to/file3 /target/
Se você usar o sinal +
( -exec command {} +
), o comando será criado adicionando vários arquivos correspondentes no final do comando. Por exemplo:
find ... -exec mv -t /target/ {} +
Executa:
mv -t /target/ /path/to/file1 /path/to/file2 /path/to/file3
Para usar o sinalizador +
corretamente, o argumento a ser processado deve estar no final do comando, não no meio. É por isso que find
trows missing argument to '-exec'
no seu exemplo; falta o fechamento {}
.