Если вы не возражаете быть немного многословным, вы можете составить явный список «приемлемых» символов и отклонить все, чего нет в списке.Например:
for old_filename in `ls`; do
new_filename = `echo $old_filename |sed -e 's/[^a-zA-Z.-_ ]//g'`
mv $old_filename $new_filename
done
Если в диапазонах символов «A-Z» и т. Д. Выбраны те символы, которые вам не нужны (может быть или не быть проблемой в зависимости от вашей локали), тогда вы можетевсегда перечисляйте каждую букву индивидуально.
Настройте вызов 'ls', если вы хотите выбрать только определенные файлы в каталоге (фильтр по расширению и т. д.).Вы столкнетесь с проблемами, если несколько файлов преобразуются в одно и то же имя «только на английском», но вы сможете обойти это, добавив дополнительный символ к имени файла.