Нет, файлы не исполняемые.
Решил проблему так:
ls *.y | sed 's/\(.*\)y$/mv & \1x/' | sh
и обратно, соответственно:
ls *.x | sed 's/\(.*\)x$/mv & \1y/' | sh
Ещё вариант:
for i in *.x; do mv "$i" "${i/x/y}";done
Ошибка была в том, что команде mv нужно передавать имя файла целиком.
Всем большое спасибо!