Observe que -regex
/ -iregex
(extensões GNU), como o padrão -path
, correspondem ao caminho completo, não apenas ao nome do arquivo.
Se você quiser encontrar arquivos cujo nome (em oposição a caminho ) comece com 2 dígitos decimais, seguindo por algo que não seja um dígito decimal e terminando em .flac
, você poderia fazer portably:
find . -name '[0-9][0-9][!0-9]*.[fF][lL][aA][cC]'
Observe que não corresponderia em 01.flac
porque o [!0-9]
não pode corresponder a ele. Em vez disso, você poderia escrever:
find . -name '[0-9][0-9][!0-9]*' -name '*.[fF][lL][aA][cC]'
Eles usam padrões curinga, não regexps.
Para usar o find
do GNU -iregex
, os equivalentes seriam:
find . -regextype egrep -iregex '.*/[0-9]{2}[^0-9/][^/]*\.flac'
find . -regextype egrep -iregex '.*/[0-9]{2}([^0-9/][^/]*)?\.flac'
Ou seja, nós ancoramos os dois dígitos no início, pois nos certificamos de que o resto do regexp não abranja um /
.