• 【Linux指令】Centos7 touch修改Access/Modify/Change 时间与恢复系统时间


    前言

    本篇主要讲解touch与时间相关的操作,关于touch创建文件,就不再赘述。

    正文

    1. 查看文件状态

    stat 【文件】
    
    • 1

    比如我创建了一个:test.c文件,使用此命令查看此文件属性。

    在这里插入图片描述

    与时间相关的信息:

    在这里插入图片描述
    其余信息(了解即可):

    在这里插入图片描述

    • 总结时间分为四类:
    1. 文件最近一次被访问的时间
    2. 文件最近一次被修改的时间
    3. 文件最近一次被改变的时间
    4. 文件的创建时间

     我最开始的时候还疑惑,文件的创建信息为啥不给出呢?

    在网上找到这样一条解释的通的评论:

    在这里插入图片描述

    大意为:有些版本支持(新),有些版本不支持(老),但是由于系统调用接口不明确的问题,Linux系统就没有明确的指出Birth Time,反而用了一个 - 来表示一个未知的时间,即使系统内部放有birth time。

    • 补充: 文件创建时间也可用crtime/otime(不同的文件系统)

     既然stat无法表示出文件的创建时间,那有没有指令能表示出系统的创建时间呢?
    ——是有的。

    在支持ext4的情况下,我们可以这样查找。

    1. 首先先看当前操作系统是否支持ext4。
    df -T
    
    • 1

    在这里插入图片描述
    2. 查看文件的索引结点

     可以直接用stat查看也可以用:

    ls -i 【文件名】
    
    • 1

    在这里插入图片描述

    1. 用索引结点查看crtime(需要root权限/切换到root用户)
    sudo debugfs -R 'stat <索引结点编号>' /dev/vda1
    
    • 1

    在这里插入图片描述

    OK,基本的时间状态已经掌握,那么我们来继续修改文件的时间状态吧!

    2.只更新Access Time

    touch -a 【文件】
    
    • 1

    在这里插入图片描述

    • 说明:只要修改了test.c的内容,Change时间就会更新到当前时间。

    2.只更新Modify Time

    touch -m 【文件】
    
    • 1

    在这里插入图片描述

    3. 修改Acess Time 与Modify Time为指定时间

    时间有两种格式:

    1. 标准的时间格式——“2023-09-14 08:55:42”
    2. 较为粗略的时间格式 —— “20230914 08:55:42”
    3. 粗略的时间格式——202309140855.42

    修改atime与mtime有两种方法:

    touch -d 【标准的时间格式】 【文件】
    
    • 1

    在这里插入图片描述

    touch -t 【粗略的时间格式】 【文件】
    
    • 1

    在这里插入图片描述

    4. 修改Change时间

    说明:一般情况下是修改不了Change时间的,因为Change时间是随着系统时间的改变而改变的,因此我们需要修改系统时间,再对原文件进行一次操作即可。

    1. 修改系统时间
    sudo date -s 【粗略的时间】
    
    • 1

    在这里插入图片描述

    1. 对原文件用touch指令再次操作

    这里我就接着上面的date -t之后的结果继续操作了,其实这里要看实际需要。

    touch -t 【粗略的时间格式】 【文件】
    
    • 1

    在这里插入图片描述

    5. 恢复系统时间

    时间分为:
    1 . 硬件时间
    2. 系统时间(date查看就是)

    从硬件时间恢复系统时间。

    sudo hwclock --hctosys
    
    • 1

    注意:可能系统时间与硬件时间不同,修改系统时间应查看一下。

    sudo hwclock --show && date +"%F %H:%M:%S"
    
    • 1

    在这里插入图片描述

    • 说明:touch + 【文件】可更新文件时间为当前时间。这里我看了一下是没错的。

    啥?硬件时间都修改了。没事只要有网,那就还有办法。

    从网络中恢复系统时间。

    1. 安装包 ntpdate
    sudo yum -y install ntp ntpdate
    
    • 1
    1. 停止相关服务
    service ntp stop
    
    • 1
    1. 设置网络时间
    ntpdate cn.pool.ntp.org
    
    • 1
    1. date查看时间
    date +"%F %H:%M:%S"
    
    • 1

    总结

     最近在复习touch指令的时候,选项搞懵逼了,不同的选项,时间格式可能并不并不相同,因此一直会出现无效时间格式的提示,特意写了一篇博客总结一下,希望对大家有所帮助!

  • 相关阅读:
    读HLS Bluebook(三)之 IO and Memories
    精品基于Uniapp+SSM实现的移动端的家庭客栈管理系统实现的App
    机器学习算法 —— 1. K近邻算法
    网络难点DHCP协议
    数据结构练习题——图(算法设计题)
    统一异常的处理方法
    TMS320C6678+Kintex-7开发板——DSP程序固化操作手册
    centos7.6挂载数据盘教程、硬盘分区(centos /dev/vdb挂载)
    12.WPF动画
    设计模式-生成器模式
  • 原文地址:https://blog.csdn.net/Shun_Hua/article/details/132866082