fly*_*ire 94 linux bash command-line
我想检查linux bash是否创建了一个文件超过x时间.
假设该文件名为text.txt,时间为2小时.
if [ what? ]
then
echo "old enough"
fi
Run Code Online (Sandbox Code Playgroud)
kmk*_*lan 122
仅限修改时间
if test `find "text.txt" -mmin +120`
then
echo old enough
fi
Run Code Online (Sandbox Code Playgroud)
或者,在一行中相同:
#!/bin/bash
find text.txt -mmin +120 -exec echo "old enough" \;
Run Code Online (Sandbox Code Playgroud)
您可以使用-cmin
更改或-amin
访问时间.正如其他人指出的那样,我认为你无法追踪创作时间.
小智 39
我总是喜欢用它date -r /the/file +%s
来找到它的年龄.
您还可以touch --date '2015-10-10 9:55' /tmp/file
在任意日期/时间获得非常细粒度的时间.
Gus*_*uss 21
使用stat
来计算文件的最后修改日期,date
找出当前时间和基本原则的自由使用,可以根据文件的最后修改时间1进行所需的测试.
if [ "$(( $(date +"%s") - $(stat -c "%Y" $somefile) ))" -gt "7200" ]; then
echo "$somefile is older then 2 hours"
fi
Run Code Online (Sandbox Code Playgroud)
虽然代码的可读性比find
方法稍差,但我认为它是一种更好的方法,然后运行find
来查看已经"找到"的文件.此外,日期操作很有趣;-)
%Z
而不是%Y
下面来获得"改变时间",这可能是你想要的.[更新]
对于mac用户,请使用stat -f "%m" $somefile
上面的Linux特定语法
Phi*_*lds 16
不存储创建时间.
存储的是三个时间戳(通常,它们可以在某些文件系统或某些文件系统选项上关闭):
对文件的"更改"计为权限更改,重命名等.修改仅为内容.
Mar*_*ian 12
虽然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日期
考虑工具“stat”的结果:
File: `infolog.txt'
Size: 694 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 11635578 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ fdr) Gid: ( 1000/ fdr)
Access: 2009-01-01 22:04:15.000000000 -0800
Modify: 2009-01-01 22:05:05.000000000 -0800
Change: 2009-01-01 22:05:05.000000000 -0800
Run Code Online (Sandbox Code Playgroud)
您可以在此处看到访问/修改/更改的三个日期。没有创建日期。您只能真正确定文件内容何时被修改(“修改”字段)或其inode 更改(“更改”字段)。
两个字段都更新的示例:
如果有人将额外信息连接到文件末尾,“修改”将被更新。
如果有人通过 chmod 更改了权限,“更改”将被更新。
归档时间: |
|
查看次数: |
95103 次 |
最近记录: |