免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4557 | 回复: 7
打印 上一主题 下一主题

[文件目录] 如何判断文件的创建日期是否符合要求 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-16 09:39 |只看该作者 |倒序浏览
如果知道在某目录下存在某文件,需要对其内容进行处理。但是要求版本(创建时间)不能太老。

所以如何判断该文件的创建时间与当前时间的差大不大呢?

我的思路如下:

1、获取该文件的创建时间   ?

2、转换获得时间的格式   ?

3、获得当前时间,并转换格式

4、两者相减,然后与指定的值比较,如果小于则成功执行下面的命令行,如果大于则执行另外一些命令

...


现在的问题在于1和2步,即如何获得创建时间,以及如何把格式转为合适比较的格式。


谢谢

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2012-08-16 10:33 |只看该作者
首先要确定你的系统有文件创建时间吗?

论坛徽章:
0
3 [报告]
发表于 2012-08-16 10:46 |只看该作者
回复 2# blackold


    sorry,似乎弄错了。文件属性里的时间:

modification time (mtime):
当该文件的『内容数据』变更时,就会升级这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔!


status time (ctime):
当该文件的『状态 (status)』改变时,就会升级这个时间,举例来说,像是权限与属性被更改了,都会升级这个时间啊。


access time (atime):
当『该文件的内容被取用』时,就会升级这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会升级该文件的 atime 了。

好像是并没有创建时间一说,比较接近的是修改时间。在一般文件不会被修改的条件下应该也是可以作为创建时间来用吧。


论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
4 [报告]
发表于 2012-08-17 09:16 |只看该作者
看你的描述应该是要用到 -mtime

找出半年没有修改过的文件列表。
  1. find /PATH -type f -mtime +180  
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-08-17 10:58 |只看该作者
回复 4# rdcwayx


    嗯,明白了。

能不能问下这条命令错误在哪呢?

[ `find ./ -mtime -1 -name inputusername.sh -print` != "" ] && echo -e "OK!\n" || XXX

我是想看看某目录下某文件的时间是否为1天以内,如果是的话则输出OK,如果不是的话则执行XXX。
似乎是[]里面的语法有错,但是我没明白错在哪。

谢谢

论坛徽章:
0
6 [报告]
发表于 2012-08-17 11:00 |只看该作者
回复 5# yonka


    不用拼接吧,查看下find 的 exec选项

论坛徽章:
0
7 [报告]
发表于 2012-08-17 11:03 |只看该作者
回复 6# personball


    不太会用。能否用本例举例?

我只是有些疑惑我这样的表达方式为什么不对么?

[ "AAA" != "" ] && XXX
这个表达式应该没问题啊,AAA不为空则执行XXX

论坛徽章:
0
8 [报告]
发表于 2012-08-17 11:09 |只看该作者
本帖最后由 personball 于 2012-08-17 11:16 编辑

回复 7# yonka


    那先改你这个命令试试,把[] 换成  [[       ]] 试试

find 的用法,参考这里:http://bbs.chinaunix.net/thread-441883-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP