知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux文件系统详解之文件时间属性

发布时间:2014-09-05 14:09:33作者:知识屋

linux文件系统详解之文件时间属性
 
  文件是linux中存储数据的基本结构,存储在像硬盘hard disk、光盘CD、软盘等存储介质中,并且被命名,该名称即文件名。linux中的文件均为无结构的字符流格式。
  linux中有很多文件,通过倒树形的目录结构来对文件进行管理、分类。目录即组织、说明文件元信息(MetaData)的一种倒树结构。整个linux文件系统有个根/(root),在跟上有分叉,分插上可以再生分叉,分叉上还可以长出叶子。根和叉就是linux文件系统中的目录,叶子就是文件。通过文件的路径来访问、操作文件。
linux文件的时间属性概述
  在创建、修改文件、目录后,他们的属性会发生变化,其中就有时间属性。可以通过ls或stat等命令来查看文件、目录元信息。文件的时间属性分为3中,分别是文件访问时间、修改时间、改变,下面我们来具体看下在什么情况下那种属性发生变化。 在linux系统中,文件的时间属性通过一个struct来表示。如下:
 
 
01
1: struct stat {
02
 
03
 2:   dev_t  st_dev; /* device inode resides on */
04
 
05
 3:   ino_t  st_ino; /* inode's number */
06
 
07
 4:   mode_t   st_mode; /* inode's mode */
08
 
09
 5:   nlink_t  st_nlink; /* number of hard links to the file */
10
 
11
 6:   uid_t  st_uid; /* user ID of owner */
12
 
13
 7:   gid_t  st_gid; /* group ID of owner */
14
 
15
 8:   dev_t  st_rdev; /* device type, for special file inode */
16
 
17
 9:   struct timespec st_atimespec; /* time of last access */
18
 
19
10:   struct timespec st_mtimespec; /* time of last data modification */
20
 
21
11:   struct timespec st_ctimespec; /* time of last file status change */
22
 
23
12:   off_t  st_size; /* file size, in bytes */
24
 
25
13: int64_t  st_blocks; /* blocks allocated for file */
26
 
27
14:   u_int32_t  st_blksize;/* optimal file sys I/O ops blocksize */
28
 
29
15:   u_int32_t  st_flags; /* user defined flags for file */
30
 
31
16:   u_int32_t  st_gen; /* file generation number */
32
 
33
17:   };
 
 
linux 三种文件时间属性详解
  linux 的文件时间属性分为:访问时间access time、修改时间modifed time、更改时间change time。
文件访问时间access time
  当我们创建一个文件后,文件就有了相同的访问时间access time、修改时间modifed time、更改时间change time。但是当对文件做一些变更后,这些时间可能会发生变化。
  文件访问时间access time,即读取了文件的内容。如果查看了文件,文件的查看时间就会更新。如进行cat、more、less等操作后,文件的访问时间就会更新。
如下用ls默认是看到文件的修改时间modifed time
通过stat 命令,能够看到更精确地时间属性信息
我们看到文件的访问时间是2013-06-13 17:07:15.000000000 +0800,下来我们less查看一下这个文件的内容。less后退出,我们看到这个文件的访问时间属性已经变化
文件修改时间modifed time
  文件的修改时间即对文件内容的修改时间,比如通过vim、emacs对文件内容进行了修改、或追加等其他方式对文件内容做修改后,文件的修改时间就会发生变化。
如下实例,通过追加修改了文件内容,文件的修改时间modifed time随之发生了变化
文件更改时间change time
  文件更改时间即对文件文件的其他属性的变化时间。比如通过chmod、chown、ln等对文件的(忽略文件访问时间属性、文件修改时间属性的变化)属性变化随之更新文件的访问时间。chmod、chown更新文件全新,ln更新文件的软硬链接属性信息。
如下实例创建文件的硬链接来更改文件的更改时间

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜