自纪元以来已过 29.9 秒

自纪元以来已过 29.9 秒

我试图查找在特定时间之后创建的文件,类似于此命令的操作方式:

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"

相关内容