进行备份并在 6 小时后删除

进行备份并在 6 小时后删除

我想编写一个 bash 脚本,备份文件abc.txt并在创建 6 小时后删除该备份。

有没有什么有效的方法可以做到这一点?

答案1

我不确定用例是什么,但你可以简单地这样做:

cp abc.txt abc.txt.bak && sleep $((60 * 60 * 6)) && rm abc.txt.bak
  • &&是短路求值运算符,只有当前面的命令以退出状态 0 退出时,后面的命令才会运行

  • cp abc.txt abc.txt.bakabc.txt使用扩展名进行备份.bak,即备份被命名abc.txt.bak(修改以满足您的需要)

  • sleep $((60 * 60 * 6))休眠 6 小时,即 21600 秒

  • 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

相关内容