我写了一个bash shell脚本,它的一部分是使用find命令检查一个文件是否超过30天,遗憾的是,当我将它上传到我的主机时,它不起作用,因为find命令被锁定。
有没有人知道如何在没有find命令的情况下检查一个文件是否超过了30天?
我想我需要做一个"ls -a $filename“,然后解析出日期字符串,将它转换成unix日期,然后将它与today date进行比较,但我在unix上非常生疏。
谢谢
发布于 2010-11-11 16:28:06
stat -c %Z filename以unixtime为单位给出最后一次更改时间
如果您想要上次修改时间,则为stat -c %Y filename。
发布于 2010-11-11 16:33:20
你可以使用if [ $file -ot $timestamp_file ] (-ot的意思是“比”老“)。您必须构造适当的文件,例如使用touch (它采用时间戳选项)。如果这是一个周期性任务,您还可以在每次运行时创建时间戳文件以供下次使用。
发布于 2010-11-11 16:30:15
让ls输出一个unix时间戳,如下所示:
ls -l --time-style='+%s'然后从输出中获取时间戳,并简单地计算当前时间和ls中的时间戳之间是否有30×24×60×60秒。
您可以使用以下命令获取当前时间戳
date '+%s';https://stackoverflow.com/questions/4152506
复制相似问题