GNU find por defecto usa expresiones regulares de emacs, puede cambiar ese tipo con -regextype
opción (ver man find).
Si usa -regextype posix-egrep
tu expresión parece funcionar. Probablemente también podría reducir el patrón a ^.+(jpg|gif|exe)$
Con emacs:find . -regex '.+\(jpg\|gif\|exe\)$'
. Consulte esta sección del manual de emacs para conocer esas reglas específicas de expresiones regulares. Necesitas escapar |
y ()
para que no sean literales.
En emacs expresiones regulares (
, |
y )
son literales a menos que escapado, esto es exactamente lo contrario de todos los demás formatos de expresiones regulares.
Tu expresión funciona como ^.+\.\(jpg\|exe\|gif\)$
.