欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

【整理归纳】Linux中文件的Access,Modify,Change区别 有大用

  • Access\Modify\Change的初始时间记录都是文件被创建的时间

  • Access 指最后一次读取的时间(访问)

  • Modify 指最后一次修改数据的时间(修改)

  • Change 指最后一次修改元数据的时间(改变)

Access 意思是“访问”。
在终端上用cat、more 、less、grep、sed、 cp 、file 一个文件时,此文件的Access的时间记录都会被更新(空文件例外),纯粹的access是不会影响modify和change,但会受到modify行为的影响。
用ls -lu看到的文件时间是最近一次access的时间。对于目录而言,只是进入目录的话不会改变它的access时间,但只要用ls查看了此目录的内容(无论在何处),这个目录的access时间就会被更新。

Modify 意思是“更改(内容),“或者“写入”。
当更改了一个文件的内容的时候,此文件的modify的时间记录会被更新。用ls -l看到的文件时间是最近一次modify的时间。modify的行为是三个行为中最有影响力的行为,它发生以后,会使文件的access记录与change记录也同时得到更新。对于目录也是如此。

Change 改变(状态或属性)。
对一个文件或者目录作mv、chown、chgrp (chmod应该也是的)操作后,它的Change时间记录被更新,change时间会受到modify行为的影响。用ls -lc看到的文件时间是最近一次change的时间。

点击查看原文

  • 假如用cat命令将文件a.txt的内容输出到终端( 执行 cat a.txt), 那么只有a.txt的Access就被刷新了

  • 假如我们把当前的时间追加到a.txt(执行 date >> a.txt) , 那么a.txt的Modify和Change都被刷新

  • 假如我们把a.txt的权限改为777(执行 chmod 777 a.txt) , 那么只有a.txt的Change被刷新

  • 假如我们用vi命令把文件a.txt打开, 然后保存退出,那么a.txt的Access,Modify和Change都被刷新
    PS: 我们可以使用命令touch更新a.txt的Access和Modify时间。
    如:

    touch -d 1999-01-01 a.txt    // 将a.txt的Access和Modify时间改为1999-01-01
    touch -a a.txt       // 只将a.txt的Access时间改为当前系统时间
    touch -m a.txt     // 只将a.txt的Modify时间改为当前系统时间

    当我们用ls -l a.txt看到的时间是Modify时间。


来自 https://blog.csdn.net/z2766290841/article/details/72977604




stat命令输出结果中, Access,Modify,Change的含义

先建立一个空白文件a.txt

1[emduser@emd tmp]$ touch a.txt
2
3[emduser@emd tmp]$ ls -al a.txt
4
5-rw-rw-r-- 1 emduser emd 0 Dec 14 16:44 a.txt


利用stat命令查看文件a.txt的各种属性
01[emduser@emd tmp]$ stat a.txt
02
03  File: `a.txt'
04
05  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
06
07Device: fd00h/64768d    Inode: 654176      Links: 1
08
09Access: (0664/-rw-rw-r--)  Uid: (  501/ emduser)   Gid: (  506/     emd)
10
11Access: 2011-12-14 16:44:23.000000000 +0800
12
13Modify: 2011-12-14 16:44:23.000000000 +0800
14
15Change: 2011-12-14 16:44:23.000000000 +0800


上述最后三行的含义如下:

Access : 文件最近一次被访问的时间

Modify:  文件内容最近一次被修改的时间

Change: 文件属性最近一次被改变的时间

  • 假如用cat命令将文件a.txt的内容输出到终端( 执行 cat a.txt), 那么只有a.txt的Access就被刷新了

  • 假如我们把当前的时间追加到a.txt(执行 date >> a.txt) , 那么a.txt的Modify和Change都被刷新

  • 假如我们把a.txt的权限改为777(执行 chmod 777 a.txt) , 那么只有a.txt的Change被刷新

  • 假如我们用vi命令把文件a.txt打开, 然后保存退出,那么a.txt的Access,Modify和Change都被刷新

PS:  我们可以使用命令touch更新a.txt的Access和Modify时间,比如:
touch -d 1999-01-01 a.txt // 将a.txt的Access和Modify时间改为1999-01-01
touch -a a.txt  // 只将a.txt的Access时间改为当前系统时间
touch -m a.txt // 只将a.txt的Modify时间改为当前系统时间
当我们用ls -l a.txt看到的时间是Modify时间

来自  https://blog.csdn.net/zengmuansha/article/details/7814530

普通分类: