Use find para pesquisar arquivos:
find . -regex ".*/[A-Z0-9]+\.[a-z]+"
Isso realiza a pesquisa no diretório atual ( . ), passando também por subdiretórios de maneira recursiva.
-
[.*/]cobre o caminho do arquivo -
[A-Z0-9]representa todas as letras de A a Z (incluindo, por exemplo, Å como mencionado por @vidarlo) e todos os dígitos de 0 a 9 -
+corresponde ao caractere ou expressão precedente uma ou várias vezes -
\.é um ponto literal -
[a-z]significa todas as letras de a a z
Para alguns caracteres especiais, pode ser necessário usar, por exemplo, [[:upper:]] em vez disso:
find . -regextype egrep -regex ".*/[[:upper:][:digit:]]+\.[[:lower:]]+"
Pergunta editada
Para combinar os testes de find , há -a e -o . Para seu exemplo, isso pode ajudar:
find /mnt/ \( -name "*[a-z]*.*" -o -name "*.*[A-Z]*" \) -exec echo {} +