GNU find utilise par défaut les expressions régulières emacs, vous pouvez changer ce type avec -regextype
option (voir man find).
Si vous utilisez -regextype posix-egrep
votre expression semble fonctionner. Vous pourriez alors aussi probablement réduire le modèle à ^.+(jpg|gif|exe)$
Avec emacs :find . -regex '.+\(jpg\|gif\|exe\)$'
. Voir cette section du manuel emacs pour ces règles spécifiques aux regex. Vous devez échapper à |
et ()
pour qu'ils ne soient pas littéraux.
Dans emacs regexps (
, |
et )
sont littéraux à moins que échappé, c'est exactement le contraire de tous les autres formats d'expressions régulières.
Votre expression fonctionne comme ^.+\.\(jpg\|exe\|gif\)$
.