一.文件的三个时间

当我们在linux中创建了文件或文件夹,文件/文件夹就有了时间属性,而且linux中的文件具有三个时间,可以通过stat命令查看文件的三种时间:

  • ​ 访问时间(Access time):又简称为atime,对文件进行一次读操作,它的访问时间就会改变。例如cat,more等操作,但是stat,ls命令对atime是不会有影响的。
  • ​ 修改时间(Modify time):又简称为mtime,文件内容最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当对文件内容修改后,它的mtime就会相应的改变,例如vim操作。
  • ​ 改变时间(Change time):又简称为ctime,当文件的状态被改变的时候,改变时间就会随之改变。例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime。
[root@node5 ~]# stat test.txt
File: ‘test.txt’
Size: 57 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34566832 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-10-03 13:26:27.884061279 +0800
Modify: 2020-10-03 13:26:27.884061279 +0800
Change: 2020-10-03 13:26:27.884061279 +0800 #atime不会一直更新,只有当mtime更新的时候,atime才会更新

二.修改文件的三种时间为任意时间

当我们拿到一个文件,就可以随心所欲的修改文件的三个时间。

[root@node5 ~]# ll -h test.txt
-rw-r--r-- 1 root root 57 Oct 3 13:26 test.txt # -d, --date=字符串 使用指定字符串表示时间而非当前时间
#把test.txt文件的atime和mtime修改为20180605 21:00
[root@node5 ~]# touch -d "20180605 21:00" test.txt [root@node5 ~]# ll -h test.txt
-rw-r--r-- 1 root root 57 Jun 5 2018 test.txt
#查看发现test.txt文件的atime和mtime已经改变,但是ctime时间没变
[root@node5 ~]# stat test.txt
File: ‘test.txt’
Size: 57 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34566832 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-05 21:00:00.000000000 +0800
Modify: 2018-06-05 21:00:00.000000000 +0800
Change: 2020-10-03 14:21:30.465143168 +0800
Birth: - #change time时间只能通过修改系统时间来自定义,但是一般情况下修改系统时间需要root权限
[root@node5 ~]# date -s 06/05/2018 >> test.txt
[root@node5 ~]# stat test.txt
File: ‘test.txt’
Size: 86 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34566832 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-05 21:00:00.000000000 +0800
Modify: 2018-06-05 00:00:00.000000000 +0800
Change: 2018-06-05 00:00:00.000000000 +0800
Birth: - #此时发现系统时间已经改变
[root@node5 ~]# date "+%F %T"
2018-06-05 00:00:34 #现在需要更新系统时间为正常时间
[root@node5 ~]# /usr/sbin/ntpdate ntp.api.bz
3 Oct 14:39:27 ntpdate[6973]: adjust time server 114.118.7.161 offset 0.068864 sec #系统时间已经更新正常
[root@node5 ~]# date "+%F %T"
2020-10-03 14:39:46 #系统时间已经改变,但是ctime没变,此时文件的所有时间都已经改变
[root@node5 ~]# stat test.txt
File: ‘test.txt’
Size: 86 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 34566832 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-05 21:00:00.000000000 +0800
Modify: 2018-06-05 00:00:00.000000000 +0800
Change: 2018-06-05 00:00:00.000000000 +0800
Birth: -

linux文件的三个时间,修改文件时间为任意时间的更多相关文章

  1. ***Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...

  2. [转]Linux系统下如何查看及修改文件读写权限

    转自 :http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html 查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx ...

  3. linux命令(6/11)--修改文件的用户组chgrp和文件所有者chown

    在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...

  4. linux下通过sed命令直接修改文件内容

    sed是实现对流的编辑.通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件.但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的 ...

  5. linux仅修改文件夹权限 分别批量修改文件和文件夹权限

    比如我想把/var/www/html下的文件全部改成664,文件夹改成775,怎么做呢 方法一: 先把所有文件及文件夹改成664,然后把所有文件夹改成775 chmod -R 664 ./ find ...

  6. 【转】c# winform 创建文件,把值写入文件,读取文件里的值,修改文件的值,对文件的创建,写入,修改

    创建文件和读取文件的值 #region 判断文件是否存在,不存在则创建,否则读取值显示到窗体 public FormMain() { InitializeComponent(); //ReadFile ...

  7. linux下的三种解压文件的命令?

    那要看你的压缩文件使用哪种压缩方式:gzip,压缩文件名:zip或gz,解压命令:unzipbzip2,压缩文件名:bz,解压命令:bzip2 -d上面两个是最常用的压缩方式,一般在linux下可以通 ...

  8. linux修改文件所有者和文件所在组

      chgrp  用户名    文件名  -R chown 用户名   文件名  -R -R表示递归目录下所有文件 以上部分已验证 一.修改文件所属组群——chgrp    修改文件所属组群很简单-c ...

  9. linux修改文件所属用户和用户组

    使用chown命令可以修改文件或目录所属的用户:       命令:chown 用户 目录或文件名       例如:chown testAdmin /home/work  (把home目录下的xua ...

  10. linux修改文件的权限和修改文件所有者和所属组

    文件设定法:chmod    [who]   [+][-][=]   [mode] who 文件所有者:u 文件所属组:g 其他:o 所有人:a +  添加权限 -  减少权限 =  覆盖原来权限 权 ...

随机推荐

  1. 解析 Go 编程语言数据类型:bool、整数、浮点数和字符串详细介绍

    数据类型 数据类型是编程中的重要概念.数据类型指定了变量值的大小和类型.Go是静态类型的,这意味着一旦变量类型被定义,它只能存储该类型的数据. 基本数据类型 Go 有三种基本数据类型: bool:表示 ...

  2. 大型场景中通过监督视图贡献加权进行多视图人物检测 Multi-View People Detection in Large Scenes via Supervised View-Wise Contribution Weighting

    Multi-View People Detection in Large Scenes via Supervised View-Wise Contribution Weighting 大型场景中通过监 ...

  3. 学习Source Generators之了解Source Generators的应用场景

    前面的文章我们都初步学习了Source Generators的使用方式以及做了一些简单的代码生成工具. 但是Source Generators除了做自动代码生成之外,还能有别的应用场景,本文来了解一下 ...

  4. 一步一步实现 .NET 8 部署到 Docker

    一.前言 本文仅针对操作系统为 CentOS 8 的环境下部署方法进行讲述.如有需要,后续将在其他文章中进行其他系统下的部署方式讲解. 二.准备工作 确保服务器已安装 docker. 可以通过命令 d ...

  5. 基于 Scriptable 从零开始美化iOS桌面(一)

    今天我为大家带来新的作品,iOS17桌面组件神器(Scriptable)原创脚本,精美作品分享!喜欢的话就点关注吧!更多脚本正在路上... * script : ONE-Progress.js * v ...

  6. Go命令行工具cobra

    关于 Cobra 是 Go 的 CLI 框架.它包含一个用于创建功能强大的现代 CLI 应用程序的库,以及一个用于快速生成基于 Cobra 的应用程序和命令文件的工具. Cobra 由 Go 项目成员 ...

  7. PTA前三次题目集总结

    以下内容是我对PTA三次习题作业最后一题的思路,源码以及总结 学到的java知识大多都来自写题目集 这些题目对我对java的认知与学习起到了不小的帮助 答题判题程序-1 题目内容 设计实现答题程序,模 ...

  8. opensips使用drouting进行路由

    操作系统 :CentOS 7.6_x64 opensips版本:2.4.9 drouting是Dynamic Routing(动态路由)的缩写,该模块可为特定呼叫选择(基于多个条件)最佳网关.今天整理 ...

  9. 【SQL】将日期时间转换成年月日的日期形式

    [SQL]将日期时间转换成年月日的日期形式 这段时间写力扣的SQL题,发现了各式各样的转换时间的方法,正好记录一下 TO_CHAR(XXX,'YYYY-MM-DD') 这个在Oracle应该是很常用的 ...

  10. 力扣977(Java)-有序数组的平方(简单)

    题目: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: 输入:nums = [-4,-1,0,3,10]输出:[0,1, ...