Atime/Mtime/Ctime

本文详细解释了Linux系统中Atime、Mtime与Ctime三种时间属性的区别与联系,并通过具体的文件操作实例展示了这些时间属性的变化规律。

linux系统中有三种时间:Atime,Mtime,Ctime

其中Atime是文件/目录的访问时间;Mtime是文件/目录的修改时间;Ctime是文件/目录的改变时间;其中Mtime和Ctime通常难以区分,但是Ctime改变的范围比Mtime大;我的理解是Mtime是当文件/目录的内容改变时间;而Ctime是文件/目录的内容或是属性的改变时间;总结一下操作这几个时间的改变情况:

 

父目录

当前目录/文件

MKDIR

M/C

A/M/C

RMDIR

M/C

--

RENAME

M/C

C

LS

--

A

CREATE_FILE

M/C

A/M/C

REMOVE_FILE

M/C

A/M/C

 

 

 

LOOKUP

--

--

 

 

 

 

 

 

读文件

--

A

写文件

--

M/C

其中标示了字母的表面相应的时间会被更新,而没有标示的--的表面不会更新。

 

参考:

http://linuxme.blog.51cto.com/1850814/347549

http://wenku.baidu.com/view/db32a6d7b14e852458fb57e6.html

### 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 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值