Я хочу создать bash-скрипт, который берет резервную копию файла abc.txt
и удаляет эту резервную копию через 6 часов после ее создания.
Есть ли эффективный способ сделать это?
Я не уверен, что является вариантом использования, но Вы могли просто сделать:
cp abc.txt abc.txt.bak && sleep $((60 * 60 * 6)) && rm abc.txt.bak
&&
оператор оценки короткого замыкания, команда после того, как это будет только выполнено, если предыдущий выйдет со статусом выхода 0
cp abc.txt abc.txt.bak
делает резервное копирование abc.txt
с a .bak
расширение т.е. резервное копирование называют abc.txt.bak
(измените это для удовлетворения потребностей),
sleep $((60 * 60 * 6))
сны в течение 6 часов т.е. 21 600 секунд
rm abc.txt.bak
удаляет резервное копирование после времени, в котором спят,
Можно усилить расширение фигурной скобки для краткости, если Вы хотите:
cp abc.txt{,.bak} && sleep $((60 * 60 * 6)) && rm abc.txt.bak
Или как (GNU) sleep
поддержки h
суффикс для указания на часы (благодарит @muru за напоминание):
cp abc.txt{,.bak} && sleep 6h && rm abc.txt.bak