[英]Comparing last modified date of a file and current date in shell script
如果先前创建的文件的最后修改日期小于当前日期,我正在尝试创建一个新文件。 下面是我试过的代码,但不确定上次修改日期和当前日期之间的差异值是多少。
代码
LAST_MODIFIED_DATE=$(stat -c %y ${APPDIR}/data/XYZ.csv)
echo "LAST_MODIFIED_DATE ${LAST_MODIFIED_DATE}"
NOW=$(date +%s)
echo "NOW ${NOW}"
let diff=${NOW}-${LAST_MODIFIED_DATE}
echo "Diff ${diff}"
结果
LAST_MODIFIED_DATE 2021-08-03 10:30:56.627022878 -0500
NOW 1629354883
Diff 1629354883-2021-08-03 10:30:56.627022878 -0500
您应该首先转换自 1970-01-01 以来以秒为单位的LAST_MODIFIED_DATE
:
NOW="$(date +%s)"
LAST_MODIFIED_DATE="$(stat -c %y ${APPDIR}/data/XYZ.csv)"
LAST_MODIFIED_DATE_EPOCH="$(date +%s --date="$LAST_MODIFIED_DATE")"
diff=$(($NOW - $LAST_MODIFIED_DATE_EPOCH))
echo "Diff ${diff}"
但是diff
将始终为正,除非文件${APPDIR}/data/XYZ.csv
是使用将来的日期创建的。
如果你想针对不同的日期进行测试(例如检查文件是否在过去一小时内创建),你可以修改NOW
的定义:
NOW="$(date +%s --date '1 hour ago')"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.