如何获得两个时间戳之间的差异?

ash*_*gpu 7 scripting bash timestamps

我正在创建一个简单的备份脚本。我想在登录时收到一条消息,说“您上次备份 x 天前”。我可以在备份“backup/.last_backup_timestamp”时创建一个文件,但是我应该使用什么格式,我如何在 bash 中找到当时和现在之间的天数差异?

谢谢

enz*_*tib 8

您可以使用该date实用程序写入 a 的时间戳file和当前时间,作为从 Epoch 过去的秒数,然后格式化字符串以转换天数差异的秒数bc

echo "scale=2; ($(date +%s)-$(date -r file +%s)) / (3600 * 24)" \
  | bc
Run Code Online (Sandbox Code Playgroud)

  • 你不需要`bc`:`echo $(( ( $(date +%s) - $(date -r file +%s) ) / 3600 / 24 ))` (2认同)
  • @Mat:我知道,但是一天的一小部分可能很重要。 (2认同)