Você pode usar as expressões -not
ou !
de find:
-not expr
Same as ! expr, but not POSIX compliant.
! expr True if expr is false. This character will also usually need
protection from interpretation by the shell.
Então, para mover foobar.jpg
, mas não os outros dois, você pode usar:
find . -mindepth 3 -type f -regex '.*.jpg\|.*.jpeg\|.*png\|.*gif' \
-not -regex '.*[0-9]+x[0-9]+.*' -exec mv {} . \;
Você também pode fazer corresponder somente 2-5 dígitos de cada lado com
find . -mindepth 3 -type f -regextype posix-egrep \
-regex '.*.jpg|.*.jpeg|.*png|.*gif' -not -regex '.*[^0-9][0-9]{2,5}x[0-9]{2,5}.*'