理解 atime,ctime,mtime (上)

理解 atime,ctime,mtime (上)

Unix文件系统会为每个文件存储大量时间戳。这意味着您可以使用这些时间戳来查找任意时间访问到的任何文件或目录(读取或写入),更改(文件访问权限更改)或修改(写入)。

# 前言

之前写过一篇 find 命令的文章 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别 ,阅读量炒鸡高。正好现在在培训 RHCE,讲师跟我们说在 Linux 中有三个概念非常重要。那我就把这个点深度挖掘,结合 find 也给大家聊聊。

  • access time – atime
    • 文件访问时间 - 显示上次访问文件数据的时间。由Unix进程直接读取或通过命令和脚本。
  • change time – ctime
    • 文件改变时间 - 更改文件的所有权或访问权限ctime 也会更改。它也将自动突出显示最后一次文件的内容更新。
  • modify time – mtime
    • 显示上次更改文件内容的修改时间,它不会随所有者或权限更改而改变。用于跟踪文件本身的数据更改。

# 例子

一、查询命令 ls

1、文件修改时间(File Modify Time)

图1-1

图1-1显示的即为文件最后修改时间:Jul 28 18:05

2、文件访问时间(File Access Time)

图1-2

图1-2显示的即为文件最后访问时间:Aug 7 12:27

3、文件改变时间 (File Change Time)

图1-3

**如图1-3显示的即为文件最后改变时间:Aug 7 16:23 **

二、综合命令 stat

通过 stat 可以快速了解一个文件详细信息。

三、修改命令 touch

touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help][--version][文件或目录...]

或 touch [-acfm][--help][--version][日期时间][文件或目录...]

命令参数:

-d 使用指定的日期时间。
-a 只更改存取时间access
-m 只更改变动时间modify
-t 使用纯数字模式 [[CC]YY]MMDDhhmm[.ss] 替换日期

使用举例

--------------------------------------------

touch -m -d "2016-05-20 14:25:50" file
// 仅按照时间(-d)改变文件修改时间(-m)
touch -d "2016-05-20 14:25:50" file
touch -d "2016-05-20" file
touch -d "14:25:50" file
或者
touch -t 201605201315.50 file
// 按照 [[CC]YY]MMDDhhmm[.ss] 模式修改
touch -t 05201315 file

四、查询命令 find

1、选项

  • 以天为单位
    • -mtime
    • -atime
    • -ctime
  • 以分钟为单位
    • -mmin
    • -amin
    • cmin

2、选项

  1. +n: 大于n
  2. -n: 小于n
  3. n:等于n

# 结文:

本文基本理清楚三种概念。find 上还没有做演示,以及具体命令会修改那些时间还未讲清楚。

关注微信公众号(ITer奋斗点滴)回复:acm

得到最终版。

原文地址:https://www.cnblogs.com/itxdm/p/understanding_atime_ctime_mtime.html