我正在尝试在 if
语句中使用 bash 测试文件的创建时间(以秒为单位)。我需要创建日期,而不是修改。
如果不使用 find
和 grep
这样的命令,您是否知道如何做到这一点?
最佳答案
恐怕我无法回答创建时间的问题,但对于上次修改时间,您可以使用以下方法获取纪元日期,以秒为单位,因为文件名 上次修改:
date --utc --reference=filename +%s
所以你可以这样:
modsecs=$(date --utc --reference=filename +%s)
nowsecs=$(date +%s)
delta=$(($nowsecs-$modsecs))
echo "File $filename was modified $delta secs ago"
if [ $delta -lt 120 ]; then
# do something
fi
等..
更新 一种更优雅的方式(同样,仅修改时间):how do I check in bash whether a file was created more than x time ago?
关于bash - 用 bash 测试文件日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1819187/