linux open属性,Linux文件的三个时间属性

时间属性介绍

Linux下一个文件通过stat命令可以查看到这个文件时间方面的属性,具体信息如下:

# stat tengine-2.0.0-23tf4566.tar.gz

File: 'tengine-2.0.0-23tf4566.tar.gz'

Size: 35995224 Blocks: 70304 IO Block: 4096 regular file

Device: 802h/2050d Inode: 201842670 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 501/ UNKNOWN) Gid: ( 20/ games)

Access: 2020-07-30 14:07:46.617759798 +0000

Modify: 2020-07-30 12:57:35.000000000 +0000

Change: 2020-10-16 06:20:13.535869875 +0000

Birth: -

如上所示,可以看出来分别有Access Modify Change 三个关于时间的属性。

此三个属性初始时间记录都是文件被创建的时间:

Access 指最后一次读取的时间(访问)

Modify 指最后一次修改数据的时间(修改)

Change 指最后一次修改元数据的时间(改变)

Access的意思是访问:

在终端上用cat、more 、less、grep、sed、 cp 、file 一个文件时,此文件的Access的时间记录都会被更新(空文件例外),纯粹的access是不会影响modify和change,但会受到modify行为的影响。

用ls -lu看到的文件时间是最近一次access的时间。对于目录而言,只是进入目录的话不会改变它的access时间,但只要用ls查看了此目录的内容(无论在何处),这个目录的access时间就会被更新。

Modify 意思是更改(内容)or 写入:

当更改了一个文件的内容的时候,此文件的modify的时间记录会被更新。用ls -l看到的文件时间是最近一次modify的时间。modify的行为是三个行为中最有影响力的行为,它发生以后,会使文件的access记录与change记录也同时得到更新, 对于目录亦是如此。

Change 改变(状态或属性):

对一个文件或者目录作mv、chown、chgrp操作后,它的Change时间记录被更新,change时间会受到modify行为的影响。用ls -lc看到的文件时间是最近一次change的时间。

# stat test.txt

File: ‘test.txt’

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

Device: 802h/2050d Inode: 201843904 Links: 1

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

Access: 2020-10-16 06:44:21.925299516 +0000

Modify: 2020-10-16 06:44:21.925299516 +0000

Change: 2020-10-16 06:44:21.925299516 +0000

Birth: -

# cat test.txt

lucky boy

# stat test.txt

File: ‘test.txt’

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

Device: 802h/2050d Inode: 201843904 Links: 1

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

Access: 2020-10-16 06:44:43.911988787 +0000

Modify: 2020-10-16 06:44:21.925299516 +0000

Change: 2020-10-16 06:44:21.925299516 +0000

Birth: -

如上用cat命令将文件test.txt的内容输出到终端( 执行 cat test.txt), 那么文件test.txt只有的Access被刷新。

# date >> test.txt

# stat test.txt

File: ‘test.txt’

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

Device: 802h/2050d Inode: 201843904 Links: 1

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

Access: 2020-10-16 06:44:43.911988787 +0000

Modify: 2020-10-16 06:46:56.760155796 +0000

Change: 2020-10-16 06:46:56.760155796 +0000

Birth: -

如上把当前的时间追加到test.txt(执行 date >> test.txt) , 那么test.txt的Modify和Change都被刷新。

# chmod 777 test.txt

# stat test.txt

File: ‘test.txt’

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

Device: 802h/2050d Inode: 201843904 Links: 1

Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2020-10-16 06:44:43.911988787 +0000

Modify: 2020-10-16 06:46:56.760155796 +0000

Change: 2020-10-16 06:48:45.676571600 +0000

Birth: -

如上把test.txt的权限改为777(执行 chmod 777 test.txt) , 那么只有test.txt的Change被刷新。

假如我们用vi命令把文件test.txt打开, 然后保存退出,那么test.txt的Access、Modify和Change都会被刷新。

同时我们也可以使用命令touch更新test.txt的Access和Modify时间:

touch -d 1999-01-01 test.txt // 将test.txt的Access和Modify时间改为1999-01-01

touch -a test.txt // 只将test.txt的Access时间改为当前系统时间

touch -m test.txt // 只将test.txt的Modify时间改为当前系统时间

当我们用ls -l test.txt看到的时间就是Modify时间。

按照时间排序文件# ls -l

-rw-r--r-- 1 501 games 35995224 Jul 30 12:57 tengine-2.0.0-23tf4566.tar.gz

-rw-r--r-- 1 501 games 4321420 Jul 22 14:15 tengine-2.0.0-45axfa54.tar.gz

-rw-r--r-- 1 501 games 33238934 Jul 22 15:20 tengine-2.0.0-64af1234.tar.gz

如上有3个文件,如果按照时间排序呢?

按照修改时间排序:

ls -alt 等价于 ls --sort=time -la

按照创建时间排序:

ls -alc

按访问时间排序:

ls -alu

以上均可使用-r实现逆序排序

ls -alrt # 按修改时间排序

ls --sort=time -lra # 等价于> ls -alrt

ls -alrc # 按创建时间排序

ls -alru # 按访问时间排序

不管你是根据什么排序,加上-r 就会反序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值