Eu sei que quando o tamanho máximo da lista de argumentos é atingido, xargs
continua criando novas listas até que todos os arquivos sejam incluídos;
mas faz find -exec <command> {} +
a mesma coisa ou não funcionará se o tamanho da lista exceder a saída de getconf ARG_MAX
?
Sim,
find -exec ... {} +
executa o comando fornecido quantas vezes forem necessárias para acomodar todos os argumentos sem exceder o tamanho máximo da lista de argumentos em cada chamada. Isso é especificado por POSIX :(grifo meu).
Ele faz a mesma coisa, ou seja, using
-exec ... {} +
executará o utilitário fornecido com lotes de nomes de caminho encontrados, uma ou várias vezes. É para isso que serve esta sintaxe.