man 1 ar
diz que a sintaxe é
ar [--plugin name] [-X32_64] [-]p[mod [relpos] [count]] archive [member...]
Então funciona com um arquivo por vez, os argumentos extras são membros. Você obviamente não quer especificar membros.
find … -exec … {} +
substitui {}
por caminhos mutliple . Caminhos excessivos são interpretados como membros por ar
. Você precisa de find … -exec … {} … \;
, que substitui {}
por apenas um caminho.
find . -name '*.lib' -exec ar -x {} \;
Dessa forma, todos os arquivos encontrados são passados para um separado ar
e satisfazem seus requisitos para apenas um arquivo.
Nota: -execdir
pode ou não ser melhor para você. Consulte man 1 find
para saber a diferença.