当前位置:  开发笔记 > 编程语言 > 正文

如何在bash中检查文件是否创建的时间超过x时间?

如何解决《如何在bash中检查文件是否创建的时间超过x时间?》经验,为你挑选了6个好方法。

我想检查linux bash是否创建了一个文件超过x时间.

假设该文件名为text.txt,时间为2小时.

 if [ what? ]
 then
     echo "old enough"
 fi

kmkaplan.. 122

仅限修改时间

if test `find "text.txt" -mmin +120`
then
    echo old enough
fi

或者,在一行中相同:

#!/bin/bash
find text.txt -mmin +120 -exec echo "old enough" \;

您可以使用-cmin更改或-amin访问时间.正如其他人指出的那样,我认为你无法追踪创作时间.



1> kmkaplan..:

仅限修改时间

if test `find "text.txt" -mmin +120`
then
    echo old enough
fi

或者,在一行中相同:

#!/bin/bash
find text.txt -mmin +120 -exec echo "old enough" \;

您可以使用-cmin更改或-amin访问时间.正如其他人指出的那样,我认为你无法追踪创作时间.


您可以删除反引号,如果测试$(找到text.txt -mmin +120)
@guns:不,你不能.
你是对的; 我想我认为`find`在找不到匹配时返回非零.

2> 小智..:

我总是喜欢用它date -r /the/file +%s来找到它的年龄.

您还可以touch --date '2015-10-10 9:55' /tmp/file在任意日期/时间获得非常细粒度的时间.


谢谢!唯一需要注意的是上面是一个时间戳(不是年龄),但可以用来计算年龄,就像这样`让AGE = $(($(date +%s) - $(date -r/path/to/file) +%s)))`[假设已创建且从未修改过,或"相对于mod的年龄"]

3> Guss..:

使用stat来计算文件的最后修改日期,date找出当前时间和基本原则的自由使用,可以根据文件的最后修改时间1进行所需的测试.

if [ "$(( $(date +"%s") - $(stat -c "%Y" $somefile) ))" -gt "7200" ]; then
   echo "$somefile is older then 2 hours"
fi

虽然代码的可读性比find方法稍差,但我认为它是一种更好的方法,然后运行find来查看已经"找到"的文件.此外,日期操作很有趣;-)


    正如Phil正确地指出创建时间没有被记录,但是使用%Z而不是%Y下面来获得"改变时间",这可能是你想要的.

[更新]

对于mac用户,请使用stat -f "%m" $somefile上面的Linux特定语法



4> Philip Reyno..:

不存储创建时间.

存储的是三个时间戳(通常,它们可以在某些文件系统或某些文件系统选项上关闭):

上次访问时间

最后修改时间

最后更改时间

对文件的"更改"计为权限更改,重命名等.修改仅为内容.



5> Maryam Jeddi..:

虽然ctime在技术上不是创作的时间,但它经常是.

由于ctime不受文件内容更改的影响,因此通常仅在创建文件时更新.是的 - 我能听到你的尖叫一切 - 如果你改变了访问权限或所有权...但通常这东西是做一次,通常在你那里的文件,同时它也被更新了.

我个人总是把mtime用于所有事情,我想这就是你想要的.但无论如何......这是一个简单易用的功能,是Guss的"没有吸引力"的重击.

#!/bin/bash
function age() {
   local filename=$1
   local changed=`stat -c %Y "$filename"`
   local now=`date +%s`
   local elapsed

   let elapsed=now-changed
   echo $elapsed
}

file="/"
echo The age of $file is $(age "$file") seconds.



6> 小智..:

找到一个是好的,但我认为你可以使用另一个,特别是如果你现在需要多少秒的文件旧

date -d "now - $( stat -c "%Y" $filename ) seconds" +%s

使用GNU日期

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有