linux下的stat命令查看文件系统的时间

来源:互联网 发布:找黑客拿股民数据库 编辑:程序博客网 时间:2024/06/05 05:19

文件系统的三个时间>

   对于window操作系统相信大家都不陌生,如果我们在window下创建一个文件,window操作系统就会对这个文件产生相应的描述信息,这个文件存在创建时间修改时间访问时间.那仫在linux操作系统下新建一个文件是不是也会出现相应的描述信息呢?

    答案是肯定的,只是在linux系统下是没有该文件的创建时间的,只有访问时间,修改时间和状态改动时间,具体情况分析见下图:

   

    通过上图我们发现在linux下创建一个文件存在Inode号,文件的链接数和Block这些属性,这主要和linux下文件的属性有关.在linux操作系统下一个文件具有一个Inode号,一个Inode号对应至少一个block块,block是访问文件内容的结构,文件block块的个数和文件的大小有关,且block的大小是固定的.

    今天主要理解的是文件系统中三个时间>

一.Access---访问时间atime

    当我们访问这个文件的时候,这个时间就会被改变,这个访问时间提示的是最后一次我们访问的时间。例如当我们使用cat,more和less等命令查看文件的内容时,该文件的访问时间就会被更新

二.Modify---修改时间mtime

    这里所说的就是文件内容最后的修改时间,不涉及该文件的权限问题。例如当我们使用vim,echo等命令向文件中写信息的时候该修改时间会被更新.

三.Change---状态改动时间ctime

    这里所说的改变就是改变Inode中的信息,例如当修改文件系统中的links链接数,size文件的大小,文件的权限,blocks文件的blocks数时状态改动时间就会被修改.

  下面以一个实际的栗子来观察这三个时间的改动>

   1.使用cat +文件名方式读取该文件的内容时访问时间被修改

   


   2.使用echo命令向文件99.c中添加信息


   


  3.当修改文件的权限时该状态修改时间会被改变

 

   


   现在应该可以解决之前那个问题了,为什仫向文件中写信息的时候,该文件的修改时间和状态改动时间都会被修改?当写信息的时候改动了文件的size,由上述举例可知当改动了文件的size时文件的状态改动时间就会被修改.

touch和三个时间的关系>

touch指令的功能为:   

       1.新建一个文件
       2.修改文件的时间戳就是把已经存在的文件时间变为系统当前的时间,把数据原封不动的保存下来

       

   1.-a:或--time=atime或--time=access或--time=use  只更改存取时间;   2.-c:或--no-create  不建立任何文件;   3.-d:<时间日期> 使用指定的日期时间,而非现在的时间;   4.-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;   5.-m:或--time=mtime或--time=modify  只更该变动时间;   6.-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;   7.-t:<日期时间>  使用指定的日期时间,而非现在的时间;   8.--help:在线帮助;   9.--version:显示版本信息。


    touch -a


    

     touch -m,修改mtime和ctime,但实质修改的是mtime


    

      touch -m修改的是mtime为什仫ctime也会被修改呢?那是因为当这个文件被touch之后无论进行什仫处理,都会修改该文件的Inode,所以ctime是一定会修改.

 总结>

   1.刚开始创建文件的时候这三个时间atime,mtime和ctime是相等的,此时并未进行任何的操作,可默认就是该文件的创建时间.

   2.当该文件被读之后,只会改变atime的值

   3.当修改文件的内容信息的时候会同时修改文件的mtime和ctime

   4.当inode被修改或者文件的权限被修改之后该文件的ctime就会被修改


在这里就分享结束了~~~


   


0 0
原创粉丝点击