-name aceita padrões de curingas , não regexps e corresponde ao nome do arquivo , não o caminho completo. Use -regex (ou -iregex ) para correspondência de regexp, mas cuidado com o caminho completo. Aqui você poderia fazer:
LC_ALL=C find -E . -iregex '.*s[0-9]{1,2}\.?e[0-9]{1,2}[^/]*\.mkv'
Aqui, estamos substituindo o segundo .* por [^/]* , ou seja, uma sequência de não caracteres / para garantir que o padrão seja igual ao nome do arquivo e não a qualquer um dos componentes do diretório.
Ao corrigir o código de idioma para C com LC_ALL=C , garantimos que . corresponda a qualquer byte e [^/] de qualquer byte, exceto o de byte / caso contrário, você poderia encontrar problemas com nomes de arquivos ou diretórios codificados em um conjunto de caracteres diferente do da sua localidade. A correção da localidade para C também garante que e corresponda apenas a e e E (e s on s e S ) com -iregex .
Observe que [\.] corresponde a uma barra invertida ou a um ponto. Para corresponder a um ponto, é \. ou [.] . Também x{1} é o mesmo que x , então eu removi esses {1} para simplificação.
Verifique a sua página de manual para obter detalhes. Observe que nenhum dos -E , -regex ou -iregex são padrão .
Pode ser simplificado para
LC_ALL=C find -E . -iregex '.*s[0-9]{1,2}\.?e[0-9][^/]*\.mkv'
Como o segundo dígito, se houver, também será correspondido por [^/] .
O equivalente padrão usando padrões de curinga seria semelhante a:
LC_ALL=C find . -name '*[sS][0-9][0-9].[eE][0-9]*.mkv' \
-o -name '*[sS][0-9].[eE][0-9]*.mkv' \
-o -name '*[sS][0-9][0-9][eE][0-9]*.mkv' \
-o -name '*[sS][0-9][eE][0-9]*.mkv'
Os padrões de caracteres curinga, ao contrário das expressões regulares estendidas, não possuem um operador de alternância nem o equivalente a ? ou {n,p} , portanto, precisamos de quatro padrões para abranger todas as possibilidades.
Você também pode usar um shell com globalização recursiva e padrões avançados de caracteres curinga, como zsh :
setopt extendedglob
ls -lrtd -- **/(#i)*s<->e<->*.mkv
-
% recursiva de
**/ -
(#i)correspondência insensível a maiúsculas -
<->qualquer número decimal
Passando para ls -lrtd aqui para imprimir uma lista com detalhes, classificados pela hora da última modificação, embora, é claro, você possa usar qualquer comando.