我试图查找在特定时间之后创建的文件,类似于此命令的操作方式:
find . -type f -newermt '1/30/2017 0:00:00'
除了日期和时间字符串之外,我需要的时间戳应为从 EPOCHSECONDS 系统变量读取的纪元时间。这能做到吗?还是需要将 EPOCHSECONDS 转换为日期和时间字符串?
我之所以问这个问题,是因为我需要在 shell 脚本中设置一个等于 EPOCHSECONDS 的变量值,执行一些会更改未知文件的命令,然后使用 find 命令查看这些命令更改了哪些文件。
答案1
是的,它可以。
-newerXY
的条目告诉man find
我们
Time specifications are interpreted as for the argument to the -d option of GNU date.
并从info 'date input formats'
节点:
自纪元以来已过 29.9 秒
如果在数字前加上“@”,则表示内部时间戳为秒数。数字可以包含内部小数点(“.”或“,”);内部表示不支持的任何多余精度都会向负无穷方向截断。这样的数字不能与任何其他日期项组合,因为它指定了完整的时间戳。
例如
find . -type f -newermt @1485752400
或者
secs=$(date +%s -d '1/30/2017 0:00:00')
find . -type f -newermt "@$secs"