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

为君一笑 提交于 2021-01-10 12:50:05

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

[emduser@emd tmp]$ touch a.txt

[emduser@emd tmp]$ ls -al a.txt

-rw-rw-r-- 1 emduser emd 0 Dec 14 16:44 a.txt

利用stat命令查看文件a.txt的各种属性

[emduser@emd tmp]$ stat a.txt

  File: `a.txt'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 654176      Links: 1

Access: (0664/-rw-rw-r--)  Uid: (  501/ emduser)   Gid: (  506/     emd)

Access: 2011-12-14 16:44:23.000000000 +0800

Modify: 2011-12-14 16:44:23.000000000 +0800

Change: 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时间


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!