首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用find命令的情况下检查文件是否超过30天

在不使用find命令的情况下检查文件是否超过30天
EN

Stack Overflow用户
提问于 2010-11-11 16:23:01
回答 5查看 5K关注 0票数 3

我写了一个bash shell脚本,它的一部分是使用find命令检查一个文件是否超过30天,遗憾的是,当我将它上传到我的主机时,它不起作用,因为find命令被锁定。

有没有人知道如何在没有find命令的情况下检查一个文件是否超过了30天?

我想我需要做一个"ls -a $filename“,然后解析出日期字符串,将它转换成unix日期,然后将它与today date进行比较,但我在unix上非常生疏。

谢谢

EN

回答 5

Stack Overflow用户

发布于 2010-11-11 16:28:06

stat -c %Z filename以unixtime为单位给出最后一次更改时间

如果您想要上次修改时间,则为stat -c %Y filename

票数 7
EN

Stack Overflow用户

发布于 2010-11-11 16:33:20

你可以使用if [ $file -ot $timestamp_file ] (-ot的意思是“比”老“)。您必须构造适当的文件,例如使用touch (它采用时间戳选项)。如果这是一个周期性任务,您还可以在每次运行时创建时间戳文件以供下次使用。

票数 3
EN

Stack Overflow用户

发布于 2010-11-11 16:30:15

ls输出一个unix时间戳,如下所示:

代码语言:javascript
复制
ls -l --time-style='+%s'

然后从输出中获取时间戳,并简单地计算当前时间和ls中的时间戳之间是否有30×24×60×60秒。

您可以使用以下命令获取当前时间戳

代码语言:javascript
复制
date '+%s';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4152506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档