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 {} .