先建立一个空白文件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  
07 Device: fd00h/64768d    Inode: 654176      Links: 1
08  
09 Access: (0664/-rw-rw-r--)  Uid: (  501/ emduser)   Gid: (  506/     emd)
10  
11 Access: 2011-12-14 16:44:23.000000000 +0800
12  
13 Modify: 2011-12-14 16:44:23.000000000 +0800
14  
15 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时间
 
PS: http://unix.stackexchange.com/questions/2464/timestamp-modification-time-and-created-time-of-a-file

There are 3 kind of "timestamps":

  • Access - the last time the file was read
  • Modify - the last time the file was modified (content has been modified)
  • Change - the last time meta data of the file was changed (e.g. permissions)

To display this information, you can use stat which is part of the coreutils.

stat will show you also some more information like the device, inodes, links, etc.

Remember that this sort of information depends highly on the filesystem and mount options. For example if you mount a partition with the noatime option, no access information will be written.

A utility to change the timestamps would be touch. There are some arguments to decide which timestamp to change (e.g. -a for access time, -m for modification time, etc.) and to influence the parsing of a new given timestamp. See man touch for more details.

touch can become handy in combination with cp -u ("copy only when the SOURCE file is newer than the destination file or when the destination file is missing") or for the creation of empty marker files.

The  field  st_atime  is  changed  by  file  accesses,  for example, by execve(2), mknod(2), pipe(2),
utime(2) and read(2) (of more than zero bytes).  Other routines, like mmap(2), may or may not  update
st_atime.

The  field st_mtime is changed by file modifications, for example, by mknod(2), truncate(2), utime(2)
and write(2) (of more than zero bytes).  Moreover, st_mtime of a directory is changed by the creation
or  deletion  of  files  in  that directory.  The st_mtime field is not changed for changes in owner,
group, hard link count, or mode.

The field st_ctime is changed by writing or by setting inode information (i.e.,  owner,  group,  link
count, mode, etc.).

[转] stat命令输出结果中, Access,Modify,Change的含义的更多相关文章

  1. pip freeze > requirements.txt` 命令输出文件中出现文件路径而非版本号

    pip freeze > requirements.txt 命令输出文件中出现文件路径而非版本号 解决办法: pip list --format=freeze > requirements ...

  2. Access, Modify, Change Time of Linux File

    All these 3 time can be viewed by "stat " command. Access time is influenced by read opera ...

  3. 如何将cmd中命令输出保存为TXT文本文件

    在使用Windows 中的cmd.exe工具时,有时候我们想要把我们的输入命令及结果保存起来, 但是用复制的方法过于麻烦:有时输出数据条数过大,会造成内容自动滚出屏幕,无法阅读,我们可将命令运行的结果 ...

  4. linux C程序中获取shell脚本输出(如获取system命令输出)

    转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...

  5. 【Linux开发】将cmd中命令输出保存为TXT文本文件

    将cmd中命令输出保存为TXT文本文件 在网上看到一篇名为:"[转载]如何将cmd中命令输出保存为TXT文本文件" 例如:将Ping命令的加长包输出到D盘的ping.txt文本文件 ...

  6. 将 cmd 中命令输出内容保存为 TXT 文本文件

    如果执行的命令输出内容较多,那么 cmd 控制台将会自动清除前面的内容,那么如何将屏幕的所有内容导出到文本文件? 下面给出简单的演示例子 ping百度,不会自动结束,按 Ctrl+C 强制结束,pin ...

  7. [20191119]探究ipcs命令输出.txt

    [20191119]探究ipcs命令输出.txt $ man ipcsIPCS(8)                    Linux Programmer's Manual              ...

  8. shell 脚本之获取命令输出字符串以及函数参数传递

    在ubuntu 14.04之后,所有的U盘挂载也分用户之分,最近很多操作也和U盘有关,所以就研究了一上午shell脚本函数以及字符串操作的方法. 字符串操作: 获取他的命令输出比较简单,打个简单的比方 ...

  9. linux top命令中各cpu占用率含义

    linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...

随机推荐

  1. scrolView

    禁止UIScrollView垂直方向滚动,只允许水平方向滚动 scrollview.contentSize =  CGSizeMake(长度, 0); 禁止UIScrollView水平方向滚动,只允许 ...

  2. Hive学习之三 《Hive的表的详解和应用案例详解》

    一.Hive的表 Hive的表分为内部表.外部表和分区表. 1.内部表,为托管表. 2.外部表,external. 3.分区表. 详解: 内部表,删除表的时候,数据会跟着删除. 外部表,在删除表的时候 ...

  3. maven在mac上的入门使用

    首先博主也是在入门学习,在学习maven时遇到了不少问题.查资料时发现网上maven的使用大多是win的,所以我打算写点maven在mac入门使用的笔记,希望可以帮助到跟我一样有困难的你们. 1.ht ...

  4. 巧用Session Manager还原Firefox丢失会话

    今天Firefox Crash之后,我的会话全部丢失了.按照以往来说,Firefox在重新启动之后或者Crash之后会有一个会话还原的页面.但今天确实没有.后来我进行Google查阅,试了很多种办法. ...

  5. 妙用git rebase --onto指令

    有时候,在分支提交更改的时候,会忘记rebase,就直接提交上去,或者忘记和本地远程分支做merge,就直接rebase了别的分支.有时候真希望有一种切片的方式,让自己的分支只需要接上某一段.这个时候 ...

  6. Jquery的外部链接和编写样式

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></ ...

  7. gdb调试memcached

    1.memcached安装前,要安装libevent 2.memcached在configure中 加上  CPPFLAGS='-ggdb3'选项 例如 本机  ./configure -prefix ...

  8. 柔性数组-读《深度探索C++对象模型》有感 (转载)

    最近在看<深度探索C++对象模型>,对于Struct的用法中,发现有一些地方值得我们借鉴的地方,特此和大家分享一下,此间内容包含了网上搜集的一些资料,同时感谢提供这些信息的作者. 原文如下 ...

  9. HTML中插入视频

    最常用的向HTML中插入视频的方法有两种,一种是古老的<object></object>标签,一种是html5中的<video></video>标签. ...

  10. JSP EL表达式的运用

    EL表达式的基本使用 1访问bean属性 第一种方式${user.name} 容器一次从pageContext,request,session,application中查找(实际上是调用request ...