Um equivalente POSIX da @ solução do TomHunt .
find . -type d -links 2 -exec sh -c '
find "$@" -type f -name "*.jpg"' sh {} +
O -links 2 confia na propriedade de alguns sistemas de arquivos de que a contagem de links de diretórios (inicialmente 2 para a entrada em seu pai e a entrada . em si) aumenta em um para cada subdir (por causa do .. entrada neles). Alguns sistemas de arquivos modernos, como btrfs ou nilfs , cujas estruturas são radicalmente diferentes, não possuem essa propriedade.
Com zsh , você pode fazer algo como:
has_subdirs() {
local l
l=($REPLY/*(/DNoN[1]))
(($#l))
}
dirs_without_subdirs=(**/*(DN^+has_subdirs))
jpgs=($^dirs_without_subdirs/*.jpg(ND.))
(($#jpgs)) && printf '%s\n' $jpgs