linux中ctime,mtime,atime的区别

本文深入解析了UNIX系统中的改变时间、修改时间和访问时间的区别,通过实例和命令行操作帮助理解文件时间戳的概念。了解如何通过改变时间、修改时间和访问时间来跟踪文件的更改历史。


http://bbs.chinaunix.net/viewthread.php?tid=92203&extra=&page=1

http://bbs.chinaunix.net/viewthread.php?tid=15799&extra=&page=1

 

好好学习,天天向上,昨天从mmmmn那里骗了"unix超级工具"一书,明白了一个多年不解的问题,现在分享给大家

当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那?

改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >;>;myfile。则这是一个修改。改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。[文件的修改时间也叫时间标志(timestamp).]

只要讨论改变时间和修改时间,就不可能不提到“访问时间(access time)”.访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的修改时间也同样如此(文件本身没有被改变)

有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。不要相信他们

下面是我man出来的内容,仅供参考!

     st_atime

           Time when file data was last accessed. Changed by  the

           following   functions:   creat(),   mknod(),   pipe(),

           utime(2), and read(2).

     st_mtime

           Time when data was last modified. Changed by the  fol-

           lowing  functions:  creat(), mknod(), pipe(), utime(),

           and write(2).

     st_ctime

           Time when file status was last changed. Changed by the

           following   functions:   chmod(),   chown(),  creat(),

           link(2),  mknod(),  pipe(),  unlink(2),  utime(),  and

           write().

ls显示出的time应该是mtime。

touch后,文件的三个时间应该都会改变,可以试一试。

from HP unix : http://e-support.hp.com.cn/e-del ... =0%3A89%3A112%3A176

问题描述

文件的 ctime、mtime、atime 之间有什么区别?

配置信息

解决方法

文件的 Access time,atime 是在读取文件或者执行文件时更改的。

文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。

文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

因此,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改 - 在权限更改,但是文件内容没有变化的情况下。

ls(1) 命令可用来列出文件的 atime、ctime 和 mtime。

ls -lc filename         列出文件的 ctime

ls -lu filename         列出文件的 atime

ls -l filename          列出文件的 mtime

    atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息。而这是加了 noatime 取消了, 不代表真實情況.反正, 這三個 time stamp 都放在 inode 中.若 mtime, atime 修改, inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟著要改了.之所以在 mount option 中使用 noatime, 就是不想 file system 做太多的修改, 而改善讀取效能.

### Linux `find` 命令中的 `atime`、`ctime` 和 `mtime` 的用法及区别 #### 1. 时间戳的概念 在 Linux 中,文件有三种主要的时间戳: - **Access Time (atime)**:表示最后一次访问该文件内容的时间。 - **Modify Time (mtime)**:表示最后一次修改文件内容的时间。 - **Change Time (ctime)**:表示最后一次更改文件元数据(如权限、所有权等)的时间。 这些时间戳可以通过 `stat` 命令查看。例如: ```bash stat filename ``` --- #### 2. `find` 命令中 `atime` 的使用 `atime` 参数用于查找基于最后访问时间的文件。常见的选项包括: - `-atime n`:查找在过去 `n` 天内被访问过的文件[^3]。 - `-atime +n`:查找在 `n` 天前被访问过,但今天没有被访问过的文件。 - `-atime -n`:查找在过去不到 `n` 天内被访问过的文件,包括今天的文件。 **示例**: - 查找过去 7 天内被访问过的文件: ```bash find /path/to/directory -atime -7 ``` --- #### 3. `find` 命令中 `mtime` 的使用 `mtime` 参数用于查找基于最后修改时间的文件。常见选项与 `atime` 类似: - `-mtime n`:查找在过去 `n` 天内被修改过的文件。 - `-mtime +n`:查找在 `n` 天前被修改过,但今天没有被修改过的文件。 - `-mtime -n`:查找在过去小于 `n` 天内被修改过的文件。 **示例**: - 查找过去 30 天内被修改过的文件: ```bash find /path/to/directory -mtime -30 ``` --- #### 4. `find` 命令中 `ctime` 的使用 `ctime` 参数用于查找基于最后变更时间的文件。这里的“变更”指的是文件元数据的变化,而非内容变化。同样支持类似的选项: - `-ctime n`:查找在过去 `n` 天内发生元数据变更的文件。 - `-ctime +n`:查找在 `n` 天前发生元数据变更的文件。 - `-ctime -n`:查找在过去小于 `n` 天内发生元数据变更的文件。 **示例**: - 查找过去 5 天内元数据发生变化的文件: ```bash find /path/to/directory -ctime -5 ``` --- #### 5. 区别总结 | 属性 | 描述 | |------------|----------------------------------------------------------------------------------------| | **Atime** | 记录的是文件内容上次被读取或访问的时间 | | **Mtime** | 记录的是文件内容上次被修改的时间 | | **Ctime** | 记录的是文件元数据(如权限、所有者等)或内容本身上次被改变的时间 | 需要注意的是,在现代文件系统中,频繁更新 `atime` 可能会影响性能,因此许多发行版默认禁用了自动更新 `atime` 功能[^3]。 --- ### 示例代码汇总 1. **查找过去 10 天内被访问过的文件** ```bash find /path/to/directory -atime -10 ``` 2. **查找过去 3 天内被修改过的文件** ```bash find /path/to/directory -mtime -3 ``` 3. **查找过去 1 天内元数据发生变化的文件** ```bash find /path/to/directory -ctime -1 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值