Tudo o que você precisa fazer é verificar se os primeiros 5 bytes no arquivo são 7f 45 4c 46 01 (é o que faz o file
). Então você só precisa ler 5 bytes de cada arquivo:
PERLIO=:raw find . -type f -size +51c -exec perl -lne '
BEGIN{$/=};print $ARGV if $_ eq "\x7f\x45\x4c\x46\x01"; close ARGV' {} +
Aqui, verificar apenas os arquivos regulares com no mínimo 52 bytes, pois tem o tamanho de o cabeçalho ELF para um Arquivo ELF de 32 bits, embora os arquivos ELF sejam geralmente muito maiores que isso.