• Liunx中文件的三个时间atime,mtime,ctime详细说明与使用场景


    导航:
    一、文件与文件夹三个时间:atime,mtime,ctime的含义
    二、stat命令查看文件的时间
    三、ll命令查看文件时间
    四、测试创建/修改文件的时间
    五、常用命令关于文件时间相关

    - - - - - - - - - - 分割线 - - - - - - - - - -

    一、文件与文件夹三个时间:atime,mtime,ctime的含义

    1.含义

    atime(Access Time):文件最近被访问时间
    mtime(Modify Time):文件最近内容修改时间
    ctime(Change Time):文件最近权限和属性修改时间

    2.文件的触发time修改的情况

    atime(Access Time):在读取文件或者执行文件时更改的任何对inode的访问都会使此处改变
    mtime(Modify Time):在写入文件时随文件内容的更改而更改的
    ctime(Change Time):在写入文件、更改所有者、权限或链接设置(更改状态)时随 Inode 的内容更改而更改的

    3.文件夹触发time修改的情况

    atime(Access Time):读取文件或者执行文件时更改的(cd不会ls会改变)
    mtime(Modify Time):在文件夹中有文件的新建才会改变,注意使用vi在文件夹内新建文件即使退出时也会变化mtime,而只更改文件夹内文件内容不会修改文件夹的mtime
    ctime(Change Time):ctime 基本同文件的ctime,其体现的是inode的change time

    4.注意事项,mtime与ctime

    mtime的改变必然导致ctime的改变,但是ctime不一定导致mtime的更改

     

    二、stat命令查看文件的时间

    stat test001.txt

     

    三、ll命令查看文件时间(对照stat命令可验证)

    1.默认显示mtime

    ll test001.txt  #默认显示mtime

    2.展示ctime

    ll --time=ctime test001.txt #展示ctime

     3.展示atime

    ll --time=atime test001.txt #展示atime

     

    四、测试创建/修改文件的时间

    假定目前的时间是:2022-10-05 13:15:40

    date "+%Y-%m-%d %H:%M:%S"

    1.创建文件后测试,文件atime、ctime、mtime均一样

    touch test001.txt
    stat test001.txt

     2.修改文件后查看,文件atime不变,ctime、mtime更新

    echo 123 > test001.txt
    stat test001.txt

     3.更改文件属主后:文件atime、mtime不变,ctime更新

    chown -R root:root test001.txt
    stat test001.txt

     4.创建文件夹,文件atime、ctime、mtime均一样

    mkdir test001mdr
    stat test001mdr

     5.文件夹内新建文件,文件夹atime不变,ctime与mtime均发生改变

    vi test001mdr/test001.txt
    stat test001mdr

     6.修改文件夹的属主,文件夹的atime、mtime不变,ctime更新

    chown -R root:root ./test001mdr
    stat test001mdr

     

    五、常用命令关于文件时间相关(24h为一天前时间节点,0为当前时间)

    1.在当前目录下查询3天内修改过的文件(72h~0)

    find .  -mtime -3 #查询3天内修改过的文件

    2.在当前目录下查询1天内访问过的文件(24h~0)

    find . -atime -1 #查询1天内访问过的文件

    3.查找50-100 天修改过的文件(100d~50d)

    find / -mtime +50 -mtime -100 #查找50-100 天修改过的文件

    4.查找过去 1 小时内更改过的文件(60min~0)

    find . -mmin -60 #过去1小时内更改过的文件

    5.查找前一天修改过的文件(48h~24h)

    find . -mtime 1 #查找前一天修改过的文件(48h~24h)

    6.查找一天前修改过的文件(~48h)

    find . -mtime +1 #查找一天前修改过的文件(~48h)

    7.查找早于指定日期修改的文件(~=day)

    find .  -newermt 2022-10-04  #查找早于指定日期(包含)修改的文件

    8.查找24小时内修改的文件(24h~0)

    find .  -newermt '-24hours'  #查找24小时内修改的文件

    9.查找10分钟之内修改过的文件(10min~0)

    find /home/ -type f -newermt '-10 minutes' #查找10分钟之内修改过的文件

    10.查找1天之内修改过的文件(24h~0)

    find . -newermt '1 day ago' #查找1天之前到现在修改的文件

    11.查找昨天到现在修改的文件-同上(24h~0)

    find .  -newermt 'yesterday' #查找昨天到现在修改的文件

    出处:https://www.cnblogs.com/mrwhite2020/p/16754506.html

  • 相关阅读:
    (黑马十次方项目day06)@ConfigurationProperties报错的解决方式
    (黑马十次方项目day04)An attempt was made to call a method that does not exist. The attempt was made from the following location:
    (黑马十次方项目day02)使用map接收form表单的参数
    (黑马十次方项目day02)IDEA在方法之间添加分隔符及开启Run Dashboard管理
    (黑马十次方项目day01)spring-boot-starter-parent 包maven依赖报错
    (黑马十次方项目day01)从PDF文件中复制代码到pom文件中project报错
    ER图学习
    java 8 函数式库Vavr功能
    Guava Cache
    UML学习
  • 原文地址:https://www.cnblogs.com/mq0036/p/16790974.html
Copyright © 2020-2023  润新知