首页 > 其他分享 > find命令mtime,ctime,atime详解

find命令mtime,ctime,atime详解

时间:2022-11-01 13:22:05浏览次数:86  
标签:07 22 0800 ctime Access mtime atime root 2012

1、

https://blog.csdn.net/Arlingtonroad/article/details/93466456

2、

1. 查找时间说明

find ./ -name “*data*” -mtime +1 当前目录下文件名包含data,而且修改时间在48小时以上的
find ./ -name “*date*” -mtime +2 当前目录下文件名包含data,而且修改时间在72小时以上的
find ./name “*data*” -mtime -1 当前目录下文件名包含data,而且修改时间在24小时以内的
find ./name “*data*” -mtime -2 当前目录下文件名包含data,而且修改时间在48小时以内的
find ./name “*data*” -mtine 1 当前目录下文件名包含data,而且修改时间在1天前当天的,也就是24小时以上,48小时以内

2. -atime,-ctime,-mtime的真正含义

linux下的-atime,-ctime,-mtime含义
我们经常会在论坛或者群里面被问到,在linux或者unix下如何查看某文件的创建日期?
经常又会有人说用find命令加选项-ctime,其实这里的-ctime并非是create time,而是change time。
在linux或者unix这类操作系统,并没有为我们保存文件的创建日期。
我们可以先来看看linux系统里文件的状态信息,下面这个文件是我一周前创建的:
[root@ora01 ~]# stat 3
File: “3”
Size: 15 Blocks: 8 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 489602 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-17 22:14:55.000000000 +0800
Modify: 2012-07-17 15:22:45.000000000 +0800
Change: 2012-07-17 15:22:45.000000000 +0800
可以看到,文件状态里有三个时间,分别是access,modify,change。
下面我们再来看看find命令下的这几个选项:
[oracle@ora01 admin]$ man find
-atime n
File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional
part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.
-mtime n
File’s data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file
modification times. 
-ctime n
File’s status was last changed n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file
status change times.


发现三个时间正好与文件的三个时间状态相同,而且帮助也已经很明显的告诉了我们其具体含义:
atime的意思是access time,即文件的最近的一次访问时间,+n意思为查找n天以前的文件,-n为查找n天以内的文件
例如有一个文件data4.txt,查看一下它的状态:
[oracle@ora01 ~]$ stat data4.txt
File: `data4.txt'
Size: 49 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 458037 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ oracle) Gid: ( 500/oinstall)
Access: 2012-07-10 11:46:05.000000000 +0800Modify: 2012-07-10 11:44:37.000000000 +0800
Change: 2012-07-10 11:44:37.000000000 +0800
我们来查看一下它的内容:
[oracle@ora01 ~]$ more data4.txt 
"SCOTT",12,"F444"
"BRENTT",43,"54GSS"
"SYS",4566
再来看看文件的状态:
[oracle@ora01 ~]$ stat data4.txt 
File: `data4.txt'
Size: 49 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 458037 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ oracle) Gid: ( 500/oinstall)
Access: 2012-07-22 23:21:10.000000000 +0800Modify: 2012-07-10 11:44:37.000000000 +0800
Change: 2012-07-10 11:44:37.000000000 +0800
可以发现,只要你查看了文件的内容,无论是more,cat,vi,那么文件的access time都会更新。

mtime比较好理解,为modify time,即文件数据最新的修改时间,指的就是文件内容的最新修改时间。
[oracle@ora01 ~]$ stat ctl1.txt
File: `ctl1.txt'
Size: 288 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 458031 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ oracle) Gid: ( 500/oinstall)
Access: 2012-07-22 23:46:05.000000000 +0800
Modify: 2012-07-10 11:44:05.000000000 +0800Change: 2012-07-10 11:44:05.000000000 +0800
对文件进行一下编辑:
[oracle@ora01 ~]$ echo "" >>ctl1.txt
[oracle@ora01 ~]$ stat ctl1.txt 
File: `ctl1.txt'
Size: 291 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 458070 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ oracle) Gid: ( 500/oinstall)
Access: 2012-07-22 23:46:05.000000000 +0800
Modify: 2012-07-22 23:46:31.000000000 +0800
Change: 2012-07-22 23:46:31.000000000 +0800
发现文件的modify和change时间都变化了,change time 下面讨论。

ctime的意思是change time,文件状态最新改变的时间。是文件的status change time,何为文件的status呢?
我们都知道文件有一些个基本的属性,权限,用户,组,大小,修改时间等,只要是这些信息变化了,那么ctime都会发生变化,
所以上面修改文件内容时为何ctime会变化,因为其mtime已经变化了,mtime也是文件状态的一个。
文件状态可以通过ls -l 查看:
[root@ora01 ~]# ls -l 3
-rw-r--r-- 1 root root 15 07-17 15:22 3
下面这个文件的Change时间为2012-07-17:
[root@ora01 ~]# stat 3
File: “3”
Size: 15 Blocks: 8 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 489602 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-17 22:14:55.000000000 +0800
Modify: 2012-07-17 15:22:45.000000000 +0800
Change: 2012-07-17 15:22:45.000000000 +0800我们改变一下它的权限:
[root@ora01 ~]# chmod 755 3
再来看看它的Change time:
[root@ora01 ~]# stat 3
File: “3”
Size: 15 Blocks: 8 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 489602 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-17 22:14:55.000000000 +0800
Modify: 2012-07-17 15:22:45.000000000 +0800
Change: 2012-07-22 23:17:40.000000000 +0800再改一下它的用户:
[root@ora01 ~]# chown oracle.root 3
[root@ora01 ~]# stat 3
File: “3”
Size: 15 Blocks: 8 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 489602 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ oracle) Gid: ( 0/ root)
Access: 2012-07-17 22:14:55.000000000 +0800
Modify: 2012-07-17 15:22:45.000000000 +0800
Change: 2012-07-22 23:33:59.000000000 +0800再改变一下它的所属组:
[root@ora01 ~]# chgrp oinstall 3
[root@ora01 ~]# ll
总计 4
-rwxr-xr-x 1 oracle oinstall 15 07-17 15:22 3
[root@ora01 ~]# stat 3
File: “3”
Size: 15 Blocks: 8 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 489602 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ oracle) Gid: ( 500/oinstall)
Access: 2012-07-17 22:14:55.000000000 +0800
Modify: 2012-07-17 15:22:45.000000000 +0800
Change: 2012-07-22 23:36:14.000000000 +0800发现,只要是修改ls -l 里面的任何信息,那么change time都会发生变化。

总结:find命令中的ctime并非是创建时间,而是文件状态改变时间。文件的时间三属性分别为access time,modify time和change time.

转自:

标签:07,22,0800,ctime,Access,mtime,atime,root,2012
From: https://www.cnblogs.com/yaok430/p/16847347.html

相关文章

  • Linux下文件的三个时间(Atime,Mtime,Ctime)
    文件的三个时间我们已经很熟悉windows系统了,那么我们在windows下新建一个文件,我们知道它在保存的时候肯定是会保存一下文件的创建时间之类的信息的,那么我们来看看windows下......
  • ctime(ctime头文件的作用)
    C语言ctime()没有#include的写法,只有#include,time.h是C语言里时间的库函数。ctime在C语言里,只是一个把日期和时间转换为字符串......
  • Airtest之用装饰器重试解决Poco RpcTimeoutError
    上期回顾:Airtest自动化多设备测试框架DreamMultiDevices以下基于python3.8;airtestIDE1.2.14;airtest1.2.6;pocoui1.0.87运行Poco脚本的时候,有没有遇到过RpcTimeout的报......
  • 驱动开发:内核枚举DpcTimer定时器
    在笔者上一篇文章《驱动开发:内核枚举IoTimer定时器》中我们通过IoInitializeTimer这个API函数为跳板,向下扫描特征码获取到了IopTimerQueueHead也就是IO定时器的队列头,本章学......
  • 驱动开发:内核枚举DpcTimer定时器
    在笔者上一篇文章《驱动开发:内核枚举IoTimer定时器》中我们通过IoInitializeTimer这个API函数为跳板,向下扫描特征码获取到了IopTimerQueueHead也就是IO定时器的队列头,本章......
  • datatime库
    1.datetime库概述以不同格式显示日期和时间是程序中最常用到的功能。Python提供了一个处理时间的标准函数库datetime,它提供了一系列由简单到复杂的时间处理方法。datet......
  • 2.5 查询文件具体的详细信息 .stat() 查询 st_ctime等文件信息
    #  查询文件信息  .stat()    importosforfileinos.scandir():#扫描目录文件print(file.stat())#查询文件具体的详细信息importos......
  • liunx的三个时间atime,mtime,ctime详细说明与使用场景
    导航:一、文件与文件夹三个时间:atime,mtime,ctime的含义二、ll命令查看文件时间三、stat命令查看文件的时间四、测试创建/修改文件的时间五、常用命令关于文件时间相关--......
  • 关于 Linux 三个时间 atime、mtime、ctime
    三个时间Linux的文件属性中有:访问时间(AccessTime)、修改时间(ModifyTime)、改变时间(ChangeTime):访问时间(AccessTime):对文件进行一次读操作,它的访问时间就“有可能”会被......
  • pymysql 处理pymysql取值带有Decimal和datetime.datatime的数据
    importpymysqlfromloguruimportloggerfrompymysqlimportconverters,FIELD_TYPEconv=converters.conversionsconv[FIELD_TYPE.NEWDECIMAL]=float#con......