三个时间

Linux 的文件属性中有:访问时间(Access Time)、修改时间(Modify Time)、改变时间(Change Time):

  1. 访问时间(Access Time):对文件进行一次读操作,它的访问时间就“有可能”会被更新。例如 cat 指令查看文件内容。
  2. 修改时间(Modify Time):对文件内容进行修改操作,它的修改时间就会被更新。例如 vim 指令修改文件内容。
  3. 改变时间(Change Time):对文件的属性进行修改操作,它的改变时间就会被更新。例如 chown、chmod 修改文件的所有权和文件权限。

stat 指令可以查看文件的时间,还可以列出其他有用的信息:

访问时间

cat、less、more 等指令查看文件内容属于读操作,有可能?修改这个文件的“访问时间”。如下图,创建 hello.c 文件并写入了一些 C 代码,现在文件的访问时间与其他时间都是一致的:

cat 指令查看文件内容,进行了一次读操作,此时文件的“访问时间”被修改了。如上图,现在的 Access Time 是 17:38:01,与上一次的时间相差不到一分钟。

接下来用 more 指令查看文件内容,同样也是进行了一次读操作,但这次的“修改时间”没有被修改,这就是在开头说读操作是“有可能”修改访问时间的情况:

出于性能的考虑,每次访问都更新时间的话,会造成磁盘不停的读写,降低系统吸能,而是达到一定的条件才更新 Access Time。

修改时间

vim 修改文件的内容就会更新文件的“修改时间”,并且也会连着更新文件的“改变时间”、“访问时间”:

vim 这种对文件进行一次写操作的副作用范围很大,文件所有与时间相关的都被一同更新了。但,touch 指令可以单独更新“修改时间”而不影响其他的时间。

改变时间

文件的属性包括:文件名、文件扩展名、所有权和文件权限等。我们修改文件的属性之后,文件的“改变时间”也会被更新。如下图,使用 mv 修改文件名称:

除此之外,chown、chomd 等指令都会更新文件的“改变时间”。

实际使用

find 指令查找文件可以添加时间的参数从而减少查找的范围,其中就会利用到以上三种时间作为参数,它们分别是:

  1. Access Time:atime;
  2. Modify Time:mtime;
  3. Change Time:ctime。

假设现在是 2022年9月24日 18:15:00,我需要查找某文件夹下有三天之前被修改的文件,利用 mtime,查找到两个符合条件的文件:

-mtime +3 中的 mtime 表示距离上一次的修改时间,+3 代表修改时间的范围超过 3 天。

Linux:atime、mtime、ctime的更多相关文章

  1. Linux -atime、mtime、ctime

    Linux中,文件都有其自身的atime.mtime.ctime,在不同的命令下,各时间发生相应的改变.下面,我们来简单的介绍一下: atime (access time):表示最后一次访问文件或目录 ...

  2. atime、mtime、ctime的区别及如何降低atime更新 mount时的option noatime

    atime.mtime.ctime的区别及如何降低atime更新 mount时的option  noatime http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3 ...

  3. Linux中的atim、mtime、ctime

    - Linux中的atime.mtime.ctime 一.文件中的atime.mtime.ctime 1.含义及各种事件标记的显示方法 atime:最近一次访问文件的时间用ls -lu看到的时间为at ...

  4. atime、mtime、ctime

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

  5. Linux常用命令之 查找命令 find —— 细说 -atime,-mtime,-ctime

    我们知道 Linux里面一切皆文件 ,那么我们能否查看一个文件是何时创建的呢?答案是否定的.那我们可以知道些文件关于时间的什么信息呢?那就不得不说文件状态的三个时间了,它们分别是 -atime, -c ...

  6. Linux文件时间详解ctime、mtime、atime【转】

    本文转载自:http://blog.csdn.net/doiido/article/details/43792561 Linux系统文件有三个主要的时间属性,分别是 ctime(change time ...

  7. Linux:Day7(上) find、文件特殊权限、if语句

    文件查找: 在文件系统上查找符合条件的文件: 文件查找工具:locate,find locate:非实时查找(数据库查找) find:实时查找: locate: 依赖于事先 构建的索引:索引的构建是在 ...

  8. Linux文件的三个时间属性(Atime,Mtime,Ctime)

    Linux下,一个文件有三种时间,分别是: 访问时间:atime 修改时间:mtime 状态时间:ctime 访问时间:对文件进行一次读操作,它的访问时间就会改变.例如像:cat.more等操作,但是 ...

  9. linux:磁盘的分割、检验、格式化与挂载

    新增一颗磁碟: 1.对磁碟进行分割,以建立可用的partition 2.对该分割槽partition进行格式化(format),以建立系统可用的filesystem 3.若要仔细点,可对刚刚建立的fi ...

  10. Linux:Day12(下) 进程、任务计划

    vmstat命令: vmstat [options] [delay [ count]] procs: r:等待运行的进程的个数: b:处于不可中断睡眠态的进程个数:(被阻塞的队列的长度): memor ...

随机推荐

  1. 【十次方微服务后台开发】Day01:环境、缓存(吐槽)、ES搜索文章、MQ注册时发送验证码

    一.系统设计与工程搭建 1.需求分析 程序员的专属社交平台,包括头条.问答.活动.交友.吐槽.招聘 SpringBoot+SpringCloud+SpringMVC+SpringData全家桶架构 s ...

  2. python基础语法&数据类型&运算符

    1.标识符 # -*- coding:utf-8 -*- # @Time :2021/1/16 10:28 # @Author :QAbujiaban # @Email :wbxztoo@163.co ...

  3. week_11

    Andrew Ng 机器学习笔记 ---By Orangestar Week_11(the Last Week!!!!) Congratulations on making it to the ele ...

  4. JavaScript:操作符:空值合并运算符(??)

    这是一个新增的运算符,它的功能是: 对于表达式1 ?? 表达式2,如果表达式1的结果是null或者undefined时,返回表达式b的结果:否则返回表达式a的结果: 它与赋值运算符结合使用,即??=, ...

  5. Windows下Mariadb中文乱码问题

    win10 在命令行使用Mariadb出现无法插入中文 并且之前正确插入的中文也无法正常显示了 ERROR 1366 (22007): Incorrect string value: '\xB1\xB ...

  6. Atcoder Beginner Contest ABC 284 Ex Count Unlabeled Graphs 题解 (Polya定理)

    题目链接 弱化版(其实完全一样) u1s1,洛谷上这题的第一个题解写得很不错,可以参考 直接边讲Polya定理边做这题 问题引入:n颗珠子组成的手串,每颗珠子有两种不同的颜色, 如果两个手串能够在旋转 ...

  7. python之路28 网络编程基础之OSI七层协议模型

    OSI七层协议 """ 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间 ...

  8. 防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

    奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其" ...

  9. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1

    场景:eclipse中编写java中用到数组 问题: 程序不报错但是运行过程中 终止,显示字样 " Exception in thread "main" java.lan ...

  10. 常用的SQL命令:

    丢弃指定的数据库,如果存在的话 DROP DATABASE IF EXISTS xuezi; 创建新的数据库 CREATE DATABASE xuezi; 进入数据库xuezi     USE xue ...