我正在寻找一个bash脚本来检查两个目录之间的时差?但在$ oldtime我只能得到20:09:24我得到这个" 20:09:24.660157390"。 我怎么才能得到几个小时:仅限分钟。
#!/bin/bash
oldtime=$(stat -c %y /mnt/dir1| awk '{print $2}' )
ctime=$(date | awk '{print $4}')
DIFF=$($oldtime-$ctime)
if [ $DIFF > 600 ]; then
echo "This directory have more that 10 min"
fi
答案 0 :(得分:0)
你可以削减额外的后缀,
但这对你没有帮助。
20:09:24 - $ctime
不起作用,
因为“20:09:24”不是一个数字。
您还有其他几个语法错误。
要计算日期之间的差异, 你需要工作几秒钟。
oldseconds=$(stat -c %Y /mnt/dir1)
newseconds=$(date +%s)
if (((newseconds - oldseconds) / 60)); then
echo "This directory have more than 10 min"
fi
答案 1 :(得分:0)
使用纪元时间戳和日期转换为该格式。
$ date +%H:%M -d @`stat -c %Y /tmp/`
19:19
但不建议使用此格式进行比较。改为使用unix时间戳:
if [ $(( $(date +%s) - $(stat -c %Y /tmp) )) -gt 600 ]; then
echo "This directory have more that 10 min"
fi