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

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

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

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

01 [[email protected] 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.).

时间: 2024-10-13 11:46:59

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

linux系统中top命令输出详解

Linux中的top命令显示系统正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务 器的负载.top是一个交互命令.在运行top的时候还可以运行很多命令.我们会探索top命令的细节,以 及这些命令. (译注:不同发型版本的top命令,在各种细节有所不同,如果发现不同时,请读你的帮助手册和命令内的帮助.) 1.Top命令输出: ------------------------------------------------------------------------- 首先,让

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

转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行

python中得到shell命令输出的方法

python中得到shell命令输出的方法: 1. import subprocess output = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).commun icate() print output[0] 2. import commands return_code, output = commands.getstatusoutput('ls -l') 3. import os process = os.p

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

$ man ipcsIPCS(8)                    Linux Programmer's Manual                   IPCS(8)NAME       ipcs - provide information on ipc facilities SYNOPSIS       ipcs [ -asmq ] [ -tclup ]       ipcs [ -smq ] -i id       ipcs -h DESCRIPTION       ipcs pr

mysql中Access denied for user 'root'@'localhost' (using password:YES)

解决方案 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例:给root加个密码root 首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令 mysqladmin -uroot password root 注:因为开始时root没有密码,所以-p旧密码一项就可以省略了. D:\MySQL\bin>mysqladmin -uroot password root回车后ROOT密码就设置为root了 mysql中Access denied for

Hive insert into directory 命令输出的文件没有列分隔符分析和解决

参考资料:http://stackoverflow.com/questions/16459790/hive-insert-overwrite-directory-command-output-is-not-separated-by-a-delimiter 问题描述: Hive insert into directory 命令输出的文件没有指定列分隔符,输出结果就像变成了一个字符串. 通过CREATE EXTERNAL TABLE 和load 方式,尝试了多种分隔符都不能正确的区分,所有的字段内容

volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域

 1.volatile:要求参数修改每次都从内存中的读取.这种情况要比普通运行的变量需要的时间长. #include <stdio.h> #include <stdlib.h> #include <time.h> void main() { time_t start, end; double res = 0; time(&start);  //获取时间,传递给start //volatile强制每次从内存读取 volatile int i; for (i =

详解Top命令 输出命令行选项及代码

Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运行很多命令.我们也会探索这些命令. (译注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助.) 1. Top 命令输出 首先,让我们了解一下输出.top命令会显示系统的很多信息.我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出: 前几行水平

Linux主要shell命令详解(中)

shell中的特殊字符 shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符.在使用它们时应注意其特殊的含义和作用范围.下面分别对这些特殊字符加以介绍. 1. 通配符 通配符用于模式匹配,如文件名匹配.路经名搜索.字符串查找等.常用的通配符有*.?和括在方括号[]中的字符序列.用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进行模式匹配. * 代表任何字符串(长度可以不等),例如:“f*”匹配以f打头的任意字符串.但应注意,文件名前的圆点