linux 查看文件时间属性,Linux文件系统详解之文件时间属性

Linux文件系统概述

文件是Linux中存储数据的基本结构,存储在像硬盘hard disk、光盘CD、软盘等存储介质中,并且被命名,该名称即文件名。linux中的文件均为无结构的字符流格式。

Linux中有很多文件,通过倒树形的目录结构来对文件进行管理、分类。目录即组织、说明文件元信息(MetaData)的一种倒树结构。整个linux文件系统有个根/(root),在跟上有分叉,分插上可以再生分叉,分叉上还可以长出叶子。根和叉就是linux文件系统中的目录,叶子就是文件。通过文件的路径来访问、操作文件。

linux文件的时间属性概述

在创建、修改文件、目录后,他们的属性会发生变化,其中就有时间属性。可以通过ls或stat等命令来查看文件、目录元信息。文件的时间属性分为3中,分别是文件访问时间、修改时间、改变,下面我们来具体看下在什么情况下那种属性发生变化。 在linux系统中,文件的时间属性通过一个struct来表示。如下:

1: struct stat {

2: dev_t st_dev; /* device inode resides on */

3: ino_t st_ino; /* inode's number */

4: mode_t st_mode; /* inode's mode */

5: nlink_t st_nlink; /* number of hard links to the file */

6: uid_t st_uid; /* user ID of owner */

7: gid_t st_gid; /* group ID of owner */

8: dev_t st_rdev; /* device type, for special file inode */

9: struct timespec st_atimespec; /* time of last access */

10: struct timespec st_mtimespec; /* time of last data modification */

11: struct timespec st_ctimespec; /* time of last file status change */

12: off_t st_size; /* file size, in bytes */

13: int64_t st_blocks; /* blocks allocated for file */

14: u_int32_t st_blksize;/* optimal file sys I/O ops blocksize */

15: u_int32_t st_flags; /* user defined flags for file */

16: u_int32_t st_gen; /* file generation number */

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

$ ls -l ATM.py

-rw-r--r-- 1 root root 3922 May 9 16:05 ATM.py

通过stat 命令,能够看到更精确地时间属性信息

$ stat ATM.py

File: `ATM.py'

Size: 3922 Blocks: 8 IO Block: 4096 regular file

Device: ca00h/51712d Inode: 201261 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2013-05-09 16:05:43.000000000 +0800

Modify: 2013-05-09 16:05:43.000000000 +0800

Change: 2013-05-09 16:05:43.000000000 +0800

我们看到文件的访问时间是2013-05-09 16:05:43.000000000 +0800,下来我们less查看一下这个文件的内容。less后退出,我们看到这个文件的访问时间属性已经变化

文件修改时间modifed time

文件的修改时间即对文件内容的修改时间,比如通过vim、emacs对文件内容进行了修改、或追加等其他方式对文件内容做修改后,文件的修改时间就会发生变化。

如下实例,通过追加修改了文件内容,文件的修改时间modifed time随之发生了变化

$ echo '' >> ATM.py

$ stat ATM.py

File: `ATM.py'

Size: 3923 Blocks: 8 IO Block: 4096 regular file

Device: ca00h/51712d Inode: 201261 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2013-05-09 16:05:43.000000000 +0800

Modify: 2013-07-28 14:22:54.000000000 +0800

Change: 2013-07-28 14:22:54.000000000 +0800

文件更改时间change time

文件更改时间即对文件文件的其他属性的变化时间。比如通过chmod、chown、ln等对文件的(忽略文件访问时间属性、文件修改时间属性的变化)属性变化随之更新文件的访问时间。chmod、chown更新文件全新,ln更新文件的软硬链接属性信息。

如下实例创建文件的硬链接来更改文件的更改时间

$ ln ATM.py ATM.py_bk

$ stat ATM.py

File: `ATM.py'

Size: 3923 Blocks: 8 IO Block: 4096 regular file

Device: ca00h/51712d Inode: 201261 Links: 2

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2013-05-09 16:05:43.000000000 +0800

Modify: 2013-07-28 14:22:54.000000000 +0800

Change: 2013-07-28 14:24:36.000000000 +0800

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值