Não há uma maneira 100% precisa, mas há uma maneira de dar um palpite.
Existe um chardet da biblioteca python que está disponível aqui: link
por exemplo,
Veja o que a variável LANG atual está definida como:
$ echo $LANG
en_IE.UTF-8
Crie um nome de arquivo que precise ser codificado com UTF-8
$ touch mÉ.txt
Altere nossa codificação e veja o que acontece quando tentamos listá-la
$ ls m*
mÉ.txt
$ export LANG=C
$ ls m*
m??.txt
OK, agora temos um nome de arquivo codificado em UTF-8 e nosso código de idioma atual é C (página de código Unix padrão).
Então inicie o python, importe o chardet e faça com que ele leia o nome do arquivo. Eu uso alguns shell globbing (ou seja, expansão através do * caractere curinga) para obter o meu arquivo. Altere "ls m *" para o que corresponder a um dos seus arquivos de exemplo.
>>> import chardet
>>> import os
>>> chardet.detect(os.popen("ls m*").read())
{'confidence': 0.505, 'encoding': 'utf-8'}
Como você pode ver, é apenas um palpite. Que bom palpite é mostrado pela variável "confiança".