2025-11-05 22:17:50 +03:00

35 lines
596 B
Bash
Executable File

#!/bin/sh
set -eu
ends_with_bak() {
case "${1}" in
*.bak) return 0 ;;
*) return 1 ;;
esac
}
_bak() {
filename="${1}"
mv "${filename}" "${filename}.bak"
}
_unbak() {
filename="${1}"
new_filename="$(echo "${filename}" | sed 's/\.bak$//')"
if [ -e "${new_filename}" ]; then
echo "Filename '${new_filename}' already exists" >&2
return 1
fi
mv "${filename}" "${new_filename}"
}
for filename in "${@}"; do
if ends_with_bak "${filename}"; then
_unbak "${filename}"
else
_bak "${filename}"
fi
done