我很清楚能够find myfile.txt -mtime +5
检查我的文件是否超过5天.但是我想在myfile.txt的几天内获取mtime并将其存储到变量中以供进一步使用.我该怎么办?
T.J*_*der 58
stat
可以给你这个信息:
filemtime=`stat -c %Y myfile.txt`
Run Code Online (Sandbox Code Playgroud)
%Y
给你最后的修改为"自大纪元以来的秒数",但还有很多其他的选择; 更多信息.因此,如果该文件在2011-01-22格林威治标准时间15:30进行了修改,则上述内容将返回1295710237区域内的数字.
编辑:啊,你想要自修改以来的几天时间.这将更复杂,尤其是因为"一天"不是固定的时间段(一些"天"只有23小时,其他25天 - 由于夏令时).
在天真的版本可能是这样的:
filemtime=`stat -c %Y $1`
currtime=`date +%s`
diff=$(( (currtime - filemtime) / 86400 ))
echo $diff
Run Code Online (Sandbox Code Playgroud)
......但是,假设一天总是完全是86,400秒.
更多关于bash算术的信息.
日期实用程序有一个方便的开关,用于从文件中提取 mtime,然后您可以使用格式字符串显示或存储该文件。
date -r file "+%F"
# 2021-01-12
file_mtime=$(date -r file "+%F")
Run Code Online (Sandbox Code Playgroud)
请参阅man date
,日期的输出由以开头的格式字符串控制"+"
用于比较多个日期的有用格式字符串可能包括:
"+%j": day of year
"+%s": unix epoch time
Run Code Online (Sandbox Code Playgroud)
日期算术在 bash 中有点麻烦,所以如果您需要在所有极端情况下都有效的相对时间,那么您可能会更好地使用另一种语言。
归档时间: |
|
查看次数: |
42967 次 |
最近记录: |