как отменить все действия программы, если пользователь оборвал ее исполнение
мне нужно сделать так, что бы при нажатии ctrl+c программа отменяла все изменения, которые сама и вносила. Например, вот часть программы, которая записывает в 1-ый указанный файл все остальные (при условии, что в списке может оказаться и он сам) через временный файл в /tmp.
f1="$1"
shift
f2=mktemp
cat "${@}" >> $f2
mv $f2 $f1
trap kill "$$" 2
Но эта программа не удаляет временный файл. Как его удалить?
PS да, есть команда cut, но при попадании f1 в списке для копирования в f1, программа запускает вечный двигатель, это не подходит.