Bash比较文件上次修改日期与另一个日期

时间:2016-11-02 15:29:18

标签: bash

我需要检查文件的最后修改日期是否大于保存在变量中的日期,如下所示:

variable=$date

if [ $file_last_modified_date -gt $variable ]; then.......

我得到的错误:[: too many arguments

我担心,错误是因为两种格式不同:

  • file_last_modified_date2016-11-01 23:00:00.000000000 +0100
  • variableWed Nov 2 16:10:52 CET 2016

我怎样才能使它们具有可比性?

1 个答案:

答案 0 :(得分:0)

您需要将两个日期转换为适合比较的通用格式。您可以简单地使用GNU date将两者转换为Unix纪元时间戳:

d1=$(date +%s --date "$file_last_modified_date")  # 1478037600
d2=$(date +%s --date "$variable")                 # 1478099452

现在你可以将它们作为整数进行比较。

if [ "$d1" -gt "$d2" ]; then