• 每天一个linux命令之stat


    【Linux】Linux下使用stat命令所显示出来的三个时间

    转 https://blog.csdn.net/pointer_y/article/details/54347968

    在linux系统下,使用stat(显示inode信息)命令可以查看一个文件的某些信息,我们先来尝试一下。

    简单的介绍一下stat命令显示出来的文件其他信息:
    - File:显示文件名
    - Size:显示文件大小
    - Blocks:文件使用的数据块总数
    - IO Block:IO块大小
    - regular file:文件类型(常规文件)
    - Device:设备编号
    - Inode:Inode号
    - Links:链接数
    - Access:文件的权限
    - Gid、Uid:文件所有权的Gid和Uid。

    Linux下的三个时间:
    1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
    2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
    3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。

    上面最开始的三个时间是一模一样的,原因是我在创建它的同时修改了它的内容,所以它的大小,Blocks也发生变化,也相当于一次访问,所以,我退出保存后三个时间一致。

    下面进行一一验证。

    1.atime(访问时间)的更新

    2.mtime(修改时间)的更新

    这里我使用echo指令向hello.cpp文件中写入了一行内容,惊讶的发现,不止mtime被更新了,而且ctime也被更新了。这是问什么呢?原因很简单,前面说过,ctime在文件大小,Blocks发生变化时也会被更新,所以仔细观察上图,这两项信息是否发生变化了呢?
    3.ctime(状态时间)的更新


    使用chmod指令修改hello.cpp的文件权限后,状态时间再次更新。
    那如果不采取这些操作导致系统自己更新这三个时间,有没有办法人为改变这三个时间呢?答案是有的,请继续往下看~

    touch命令
    我们都知道touch命令是用来创建文件的,其实它的用法还有一个,就是修改文件的时间戳。
    用法:
    -a 或–time=atime或–time=access或–time=use 只更改访问时间。
    -m 或–time=mtime或–time=modify  只更改修改时间
    -d、-t  使⽤指定的⽇期时间,⽽⾮现在的时间
    我们来试一试:

    通过上图可以发现,我只是通过-a选项试图修改hello.cpp的访问时间,结果ctime(状态时间)也发生了改变。虽然实际上我用touch操作只改变了atime,但是由于文件的状态发生了变化,所以ctime就自己更新了。

    没错,和上面一样,我只是通过-m选项改了文件的修改时间,ctime依然更新了。touch指令依然只是修改了修改时间,而状态时间是系统自己更新的。为什么会这样呢?想一下,我们每次使用touch指令其实都是修改了文件的inode信息,所以状态时间就会自己更新。

  • 相关阅读:
    Django(模板语言-自定义filter和simple_tag)
    vue项目创建步骤小结
    scrapy 相关
    face parsing(人脸解析)
    FSRNet: End-to-End Learning Face Super-Resolution with Facial Priors论文阅读
    第一周,深度学习的实用层面
    如何阅读英文文献
    学习笔记
    Joint Super-Resolution and Alignment of Tiny Faces
    Super-FAN:Integrated facial landmark localization and super-resolution of real-world low resolution faces in arbitrary poses with GANs论文阅读
  • 原文地址:https://www.cnblogs.com/shanfenglang/p/10033251.html
Copyright © 2020-2023  润新知