linux中文件记录的时间参数,【Linux】stat命令查看文件的三个时间参数

本文详细介绍了Linux系统中文件的三个重要时间戳:修改时间(mtime)、状态改动时间(ctime)和访问时间(atime),并展示了如何通过stat命令查看这些时间。同时,讨论了touch命令如何影响这些时间戳,以及相关参数如-a和-m的作用。通过示例,解释了不同命令如何改变文件的时间属性。
摘要由CSDN通过智能技术生成



在Windows中创建一个文件都会有相应的创建时间,修改时间,访问时间来记录文件的一些属性。在Linux中也不例外,文件也有三个时间来记录文件的变动,这三个时间分别是Modification time (修改时间)、Change time(状态改动时间)、Access time(访问时间)。下面我们就来了解一下这几个时间。

(1)初识三个文件时间

Modification time (mtime):当该文件的『内容数据』变更时,就会更新这个时间! 『内容数据』指的是文件中记录的内容,而不包括文件属性和权限等!

Change time (ctime):当该文件的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是文件权限、属性、inode号等被更改了,都会更新这个时间。

Access time (atime):当我们访问该文件时,就会更新这个时间为最后一次访问该文件的时间 。 当我们使用 cat 、more、less等命令读取文件信息的时候,就会更新 atime 了。

(2)查看时间

我们可以使用 stat 这个命令来查看文件的三个时间:

0818b9ca8b590ca3270a3433284dd417.png

这个时候我们只创建了文件,因此atime,mtime,ctime是相同的,都记录的是文件的创建时间。

也可以用 ll 或ls -l --time=atime或着ls -l --time=ctime来单独查看这三个时间,如下:

0818b9ca8b590ca3270a3433284dd417.png

(3)三个时间的变动情况

echo命令可以在不改变atime的情况下向文件中写入内容

0818b9ca8b590ca3270a3433284dd417.png

cat命令查看文件内容只改变atime

0818b9ca8b590ca3270a3433284dd417.png

chmod命令改变文件的访问权限只改变ctime

0818b9ca8b590ca3270a3433284dd417.png

(4)touch命令与三个时间的关系

1、 touch的功能

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

2、touch的命令参数

-a 或--time=atime或--time=access或--time=use  只更改存取时间。

-c 或--no-create  不建立任何文档。

-d  使用指定的日期时间,而非现在的时间。

-m 或--time=mtime或--time=modify  只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。

2.1  -a参数

0818b9ca8b590ca3270a3433284dd417.png

touch -a 命令本来修改的是atime,但是ctime却也随之改变,为什么呢?这是因为touch命令不管进行什么操作都会改变文件的inode号,因此进行touch命令后,ctime一定会改变。(touch -m 命令也是同样的道理)

2.2  -c参数

0818b9ca8b590ca3270a3433284dd417.png

2.3  -d参数

0818b9ca8b590ca3270a3433284dd417.png

修改时间atime和mtime为指定时间,而ctime则更改为最新时间。

2.4  -m参数

0818b9ca8b590ca3270a3433284dd417.png

touch -m命令本质只改变mtime,ctime改变与 -a 命令原因相同。

2.5  -r 参数

更新tmp.1的时间戳与tmp.2相同

0818b9ca8b590ca3270a3433284dd417.png

2.6  -t 参数

0818b9ca8b590ca3270a3433284dd417.png

值得说明的是:

这里touch -t 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数:         [[CC]YY]MMDDhhmm[.SS]        这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch   将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量指定的时区中的一个时间。由于系统的限制,早于1970年1月1日的时间是错误的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值