Сначала необходимо проверить файл, а затем попытаться переименовать его, переместив.
Что-то вроде этого должно быть достаточно:
for file in *.htm; do
[ -f "${file%.*}.html" ] && mv "${file}" "${file%.*}.html" || printf "%s.html already converted - contacted administrator" "${file%.*}"
done
Обратите внимание, что также без какой-либо замены вы можете просто сделать mv "${file}" "${file}l"
.
Обратите внимание, что если не использовать пользователя с правами администратора, безопаснее использовать if-then-else
следующим образом:
for file in *.htm; do
if [ -f "${file%.*}.html" ]; then
mv "${file}" "${file%.*}.html"
else
printf "%s.html already converted - contacted administrator" "${file%.*}"
fi
done