linux下的-atime,-ctime,-mtime含义
我们经常会在论坛或者群里面被问到,在linux或者unix下如何查看某文件的创建日期?
经常又会有人说用find命令加选项-ctime,其实这里的-ctime并非是create time,而是change time。
在linux或者unix这类操作系统,并没有为我们保存文件的创建日期。

find /opt/backup/ -mtime +30 -type f

[@more@]

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.

http://blog.itpub.net/26675752/viewspace-1058878/

linux下find命令-atime,-ctime,-mtime真正含义相关推荐

  1. mysql unix formtime_linux下find命令-atime,-ctime,-mtime真正含义

    linux下的-atime,-ctime,-mtime含义 我们经常会在论坛或者群里面被问到,在linux或者unix下如何查看某文件的创建日期? 经常又会有人说用find命令加选项-ctime,其实 ...

  2. linux ctime 时间戳,Linux时间戳atime ctime mtime区别及相关命令

    首先简单讲一下Linux时间戳atime ctime mtime的概念 atime:Access Time 最后一次访问文件(读取或执行)或目录的时间 mtime:Modofy Time 最后一次修改 ...

  3. Find命令搭配atime/ctime/mtime时的日期写法

    find可谓是aix/linux上使用较多的维护用命令,但很多时候需要用到针对时间的搜索.本文主要对find中搭配atime.ctime和mtime的各种参数进行介绍. atime:访问时间(acce ...

  4. Linux文件atime ctime mtime

    Linux文件atime ctime mtime Linux文件一般来说都具有三个重要的时间 atime:access time ctime: change time mtime: modificat ...

  5. Linux之atime,ctime,mtime的区别

    在Linux中有atime,ctime,mtime三个时间属性容易被搞混 简名 全名 中文 作用 atime Access Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Cha ...

  6. Linux下find命令详情

    Linux下find命令在目录结构中搜索文件,并执行指定的操作. linux下find命令提供了相当多的查找条件,功能很强大,所以它的选项也很多,其中有许多的选项都值得我们深入的了解学习. 命令格式: ...

  7. linux下find命令用法

    一.Linux中find常见用法示例 ·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

  8. Find–atime –ctime –mtime的用法与区别总结

    总结一.区别 atime是指access time,即文件被读取或者执行的时间,修改文件是不会改变access time的.网上很多资料都声称cat.more等读取文件的命令会改变atime,但是我试 ...

  9. linux+find参数详解,Linux下find命令详解

    [概述] find命令是Linux中一个很强大的查找命令,用于在目录结构中搜索文件并执行指定操作.只要具有相应的权限,即使系统中含有网络文件系统(NFS),find 命令在该文件系统中同样有效.由于f ...

  10. linux find ok用法,linux下find命令用法

    一.Linux中find常見用法示例·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

最新文章

  1. 最新TeamViewer绿色便携单文件版之新手使用说明
  2. 老版本select2设置初始值
  3. svn 邮件通知及LOG处理 强制提交log日志
  4. Gym - 101334F 单调栈
  5. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案
  6. Java接口存在的意义以及如何解决菱形继承问题
  7. SAP内部订单的作用
  8. Using the Cordova Camera API
  9. python贪吃蛇设计目标_基于 pygame 设计贪吃蛇游戏
  10. 怎样自己写一个MVC框架
  11. 保护系统 用数据库加密实现数据安全
  12. oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...
  13. 嵌入式Linux的学习路线
  14. 物理单位与格子单位转换
  15. Android 对TextView添加删除线,下划线,加粗,斜体等效果
  16. SIPP测试使用指导
  17. HR面/综合面系列:职业相关
  18. arm汇编标号globl和word解释
  19. 渗透笔记-常用入侵步骤
  20. Revit二次开发学习笔记

热门文章

  1. mysql 语法手册_MySQL语法大全_自己整理的学习笔记
  2. Scala学习07——隐式转换
  3. Python让繁琐工作自动化——chapter12 处理Excel电子表格
  4. oracle append 分区,insert append 到底扩展几个数据块?
  5. stringbuilder为什么线程不安全_String Builder 为什么线程不安全?
  6. 可以两个人协作一个项目吗_两个人分手了,还可以继续做朋友吗?
  7. js base64编码_使用psd.js将PSD转成SVG -- 基础篇(文字amp;图片)
  8. 被后台杀死后,Android应用如何重新走闪屏逻辑
  9. 95.Extjs 表单中自定义的验证规则 VTypes
  10. opencv读取摄像头实时流代码