linux下文件时间戳

  linux下的时间戳有三个,Access(文件访问时间)、Modify(文件内容修改时间)、Change(文件修改时间,包括权限修改,内容修改)。

如何查看这三个时间

  • 使用ls命令
ls -lc filename #列出文件的 ctime (最后更改时间)
ls -lu filename #列出文件的 atime(最后存取时间)
ls -l filename  #列出文件的 mtime (最后修改时间)
  • 使用stat命令

    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 122 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0777/-rwxrwxrwx) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 13:50:03.410188551 +0800
    Modify: 2017-02-28 13:50:02.982540013 +0800
    Change: 2017-02-28 13:50:02.978188564 +0800
    Birth: -

测试

  • chmod对时间戳的修改

    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 122 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0777/-rwxrwxrwx) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 13:50:03.410188551 +0800
    Modify: 2017-02-28 13:50:02.982540013 +0800
    Change: 2017-02-28 13:50:02.978188564 +0800
    Birth: -
    root@ubuntu:makefile_test# chmod 666 main.c
    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 122 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0666/-rw-rw-rw-) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 13:50:03.410188551 +0800
    Modify: 2017-02-28 13:50:02.982540013 +0800
    Change: 2017-02-28 14:04:40.062161972 +0800
    Birth: -

    可见,chmod修改了文件Change time。

  • touch对时间戳的修改

    root@ubuntu:makefile_test# touch main.c
    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 122 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0666/-rw-rw-rw-) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 14:06:49.622158044 +0800
    Modify: 2017-02-28 14:06:49.622158044 +0800
    Change: 2017-02-28 14:06:49.622158044 +0800
    Birth: -

    可见,touch把三个时间都修改了

  • 最后看看恼人的Access time在什么时候修改

    root@ubuntu:makefile_test# vim main.c
    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 124 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0666/-rw-rw-rw-) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 14:13:36.730145701 +0800
    Modify: 2017-02-28 14:13:43.914145483 +0800
    Change: 2017-02-28 14:13:43.914145483 +0800
    Birth: -
    root@ubuntu:makefile_test# vi main.c
    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 124 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0666/-rw-rw-rw-) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 14:14:14.782144547 +0800
    Modify: 2017-02-28 14:13:43.914145483 +0800
    Change: 2017-02-28 14:13:43.914145483 +0800
    Birth: -
    root@ubuntu:makefile_test# vi main.c
    root@ubuntu:makefile_test# stat main.c
    File: ‘main.c’
    Size: 124 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 2037475 Links: 1
    Access: (0666/-rw-rw-rw-) Uid: (65534/ nobody) Gid: (65534/ nogroup)
    Access: 2017-02-28 14:14:14.782144547 +0800
    Modify: 2017-02-28 14:13:43.914145483 +0800
    Change: 2017-02-28 14:13:43.914145483 +0800
    Birth: -

    第一次vi,修改了文件内容,结果是3个时间都改了。第二次,只是单单打开再关闭,Access时间改了,第三次,再次单单打开再关闭,Access时间没改

为什么打开了文件Access时间没改呢?
  首先我怀疑了缓存的影响,于是我通过命令sync; echo 3 > /proc/sys/vm/drop_caches清空缓存,但是结果是一样的,打开文件,Access时间依然没改。
  然后google了一下(注意用英文描述搜),发现man mount里面对relatime、noraletime、strictatime可以看到缘故。下面简要描述下,什么情况会更新Access time。
  linux2.6.30开始,mount默认是relatime的,Access time会在文件内容被修改后更新,以及被修改后的下一次访问时更新,距上一次访问时间超过一天会更新。这里和上面的测试也是相符的。

参考:
http://stackoverflow.com/questions/19551139/access-time-does-not-change-after-a-file-is-opened

linux下文件时间戳相关推荐

  1. linux下文件时间戳修改

    1.touch命令 linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 命令格式: touch [选项]- 文件- 命令参数: -a ...

  2. Linux下文件的三种时间戳

    Linux下文件的三种时间标记 三种时间对应关系表 column column column 访问时间 Access atime 修改时间 Modify mtime 状态改动时间 Change cti ...

  3. linux下文件字符集转化实战篇

    linux下文件字符集转化实战篇 ------------------------------------------ 为什么转换编码,起因:分析应用程序日志,文件编码格式gb2312(含中文字符), ...

  4. linux下文件的压缩和解压缩

    linux下文件的压缩和解压缩 目录 1.压缩 2.解压缩 3.归档工具 一. 压缩 compress: -d:解压缩,相当于uncompres-c:结果输出至标准输出,不删除原文件-v:显示详情 - ...

  5. Linux下文件的三个时间:ctime、mtime、atime的区别

    Linux下文件的三个时间参数 (1)modification time(mtime):内容修改时间 这里的修改时间指的是文件的内容发生变化,而更新的时间. Eg:vi后保存文件. (2)status ...

  6. Unix/Linux下文件基本操作[zt]

    Unix/Linux下文件基本操作 来源: ChinaUnix博客 日期: 2008.06.16 17:16 (共有0条评论) 我要评论 比较重要的设备文件有三个,它们是/dev/console./d ...

  7. Linux下文件描述符

    Linux下文件描述符 标签: linuxfilelinux内核apacheunixsocket 2012-08-17 15:45 5798人阅读 评论(0) 收藏 举报 分类: 调优和安全(5) 版 ...

  8. linux下文件描述符的介绍

    linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...

  9. linux读文件整个过程,linux下文件资料传输实现全过程

    linux下文件资料传输实现全过程 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 实用标准文案/***************** ...

最新文章

  1. php中需要注意的问题
  2. MFC 对话框小总结
  3. Python 远程部署利器 Fabric2 模块
  4. cmd、start命令中有空格的解决方法
  5. 1.空间中直线交点坐标问题,2.已知球面三点求球心问题以及Matlab实现
  6. 20191201每日一句
  7. windows bat批量创建文件夹与文件
  8. 服务器共享文件夹加密设置方法,共享文件夹加密专家使用教程
  9. AX9000利用docker实现迅雷远程下载2
  10. 一支口红用了5年_一支口红多久该扔掉?保质期过了还能用吗?
  11. 大气幼儿园html模板,幼儿园儿童HTML主题
  12. 推荐一款视频音频剪辑软件,可免费试用
  13. Etcd Unable to attach or mount volumes
  14. C语言 自定义字符串拼接函数
  15. mysql数据库国际化
  16. Pytorch 混合精度训练(Automatic Mixed Precision)原理解析
  17. python入门_老男孩_字典的增删查改
  18. 简约商务报告PPT模板
  19. 深度学习笔记:卷积神经网络的可视化--卷积核本征模式
  20. vue 自定义图片文件上传结合elementui

热门文章

  1. java zookeeper 主从热备_zookeeper 核心原理
  2. python 人脸检测_借助摄像头在Python中实现人脸检测
  3. 返回的图片 buffer 怎么接收_图片裁剪原理
  4. HTML li标签排列有空白间隙
  5. 【转载】如何使用docker部署c/c++程序
  6. Xcode打包上传时,最后一步出现An error occurred uploading to the iTunes Store.的解决方法...
  7. 实验四_078_刘玲志
  8. CComQIPtr spCmdButton PutTag
  9. Mac安装oh-my-zsh更改终端背景
  10. Hbuilder启动夜神游模拟器失败,解决方案