Há alguns problemas aqui. Em primeiro lugar, como John mencionou, -name
faz correspondência de subcadeia com globs, você precisa usar -regex
e, em segundo lugar, há incompatibilidades de dialeto de expressão regular. Por padrão, o GNU find usa expressões regulares do Emacs e o BSD localiza usos expressões regulares posix-básicas. Se você tem find.info
instalado, pode ler mais sobre isso aqui:
info find.info 'Reference' 'Regular Expressions' 'emacs regular expression'
Dialetos de expressão regular suportados podem ser encontrados aqui:
info find.info 'Reference' 'Regular Expressions'
encontrar GNU
Você pode fazer sua expressão funcionar com posix-extended
, assim com o GNU find:
find . -regextype posix-extended -regex '.*[0-9]{2,4}x[0-9]{2,4}.jpg'
Saída:
./1_2-600x600.jpg
./1_2-802x600.jpg
./1_2-600x449.jpg
./1_2-300x224.jpg
./1_2-768x575.jpg
encontrar o BSD
Eu não tenho acesso ao BSD, mas acho que isso deve funcionar:
find -E . -regex '.*[0-9]{2,4}x[0-9]{2,4}\.jpg'