Eu usaria find /somewhere/on/disk -name "*.jpeg" over ls .
Existe também a opção locate *.jpeg que faz uso de um banco de dados. No entanto, esse banco de dados é atualizado apenas em intervalos regulares (geralmente de um cron job), portanto, alguns arquivos podem não ter sido indexados no momento em que você está invocando o comando locate , produzindo um resultado menos preciso. Você pode forçar a criação ou atualização desse banco de dados invocando o comando updatedb .
Sobre find vs ls performance, ls classificará a saída que leva tempo, enquanto você não precisa necessariamente dela. Além disso, ls produzirá muitas informações que precisam ser filtradas por grep posteriormente.
Referência: