Um caminho seria com o sed:
mv 'file' $(echo 'file' | sed -e 's/[^A-Za-z0-9._-]/_/g')
Substitua file pelo seu nome de arquivo, é claro. Isso substituirá qualquer coisa que não seja uma letra, um número, um período, um sublinhado ou um traço com um sublinhado. Você pode adicionar ou remover caracteres para mantê-lo como quiser e / ou alterar o caractere de substituição para qualquer outra coisa ou nada.