Linux下关于文件的三个时间(atime/ctime/mtime)

首先:必须声明一点:这篇文章的内容也有网上的一些大神总结的东西,
而我自己是在查阅了好多资料后才总结出来的,其中肯定会引用一些我觉得写的很好的。

先来介绍一下关于目录权限的问题:

关于目录的访问权限:

这里写图片描述

你创建目录其实就是为了在其目录下创建文件或者是创建子目录,那么你需要给出此目录的三种权限(可读、可写、可执行)。
还有一种情况:你创建的目录,希望和你同组的成员或者别人可以看到你目录下的内容,但是不能修改你目录下的内容,这时你可以给出r和x权限。

综之:当创建一个目录时,目录的权限至少也得是具有可读和可执行这两个权限。

在这里我将r(读)权限单独拿出来看:

这里写图片描述

在下面我们一起来看关于文件的三个时间。
1.在ls这个命令下:
引出这三个时间:

ls -lu (show files access time and sort by name)
ls -lc (show files change time and sort by name )
ls -l (show files modify time and sort by name )
如果加上-t参数,则按相应的时间排序后显示。加上–time-style=full-iso,则会把文件的相应年月日时分秒time全部显示出来。

touch命令能改变文件的access时间和modify时间为任意指定的时间。

这里写图片描述

注意:ls -l命令默认显示modify time(mtime).

我们可以稍微了解到每个文件在linux下都会纪录许多的时间参数。

linux中的三个时间:
①modification time(mtime)
当该文件的内容数据更改时,就会更改这个时间。
内容数据:指的是文件的内容,而不是文件的属性或权限。

②status time(ctime)—->网上也有人表示:change time(其实意思都一样)。
当该文件的状态改变时就会更新这个时间。(当该文件的属性例如权限和属性被更改时)。

③access time(atime)
当该文件的内容被取用时,就会更新这个读取时间。
例如我们使用cat命令去读取一个文件的内容时。

下面详细介绍三种时间:
(下面都是文件的三个时间,目录的三个时间会在后面叙述,这时应该想到在Linux下,一切皆文件的思想)
①access time : 表示最后一次访问(仅仅是访问,没有改动)文件的时间。
当仅仅是访问文件,使用cat等命令,将文件内容打印到屏幕上。
这时,文件的access time时间可能会发生改变,其他两个命令不会发生改变。

这里写图片描述

因此阅读一个文档会更新它的access time,但它的modify time和change time 并没有变化。
cat、more 、less、grep、sed、tail、head、vi、vim、nano、touch这些命令都会修改文件的access时间。

注意:不要使用vi访问。
当使用vi命令时:无论是否修改文件的内容,文件的三个时间都将被修改。
只是进入了vim编译器,而没有修改里面的任何内容。

这里写图片描述

②modify time :最后一次修改文件的时间;

[文档的modify时间也叫时间戳(timestamp).]
chmod, chown,create,mv等动作会将Linux文件的change time修改为系统当前时间。

当我们修改了文件的内容后,该文件的access time 可能不会发生改变,而该文件的modify time 和 change time会被修改。

不用访问文件也可以修改文件的内容,即就是不会修改文件的access time也可以修改文件的modify time。

而当modify time 改变时,change time 也会随之而被修改。
因为文件的大小等也是文件的属性。

这里写图片描述

③change time : 表示最后一次对文件属性改变的时间,包括权限,大小,属性等等。

change time是文档的索引节点(inode)发生了改变(比如位置、用户属性、组属性、权限值、内容等);

当我们修改了文件的属性后,该文件的access time和modify time 可能不会发生改变,而该文件change time会被修改。

chmod, chown,create,mv等动作会将Linux文件的change time修改为系统当前时间。

这里写图片描述

目录的三个时间:和上面所属的一般文件情况类似:

1.当访问目录时:

这里写图片描述

2当对目录进行修改时,例如在目录下创建一个文件时,会更新文件的modify time/change time,而文件的access time不一定会被修改。

这里写图片描述

touch这个命令最常用的场景:
①创建一个空的文件;
②将某个文件日期修改为目前日期(atime,mtime)。

总结:我们经常看到的文件属性中,我们经常关心的是mtime,即就是文件的内容被修改的时间。


3-22晚
补充:
1.上面介绍了关于文件的三个时间,下面让我们一起来看看如何修改这三个时间。

如何来修改一个文件的三个时间呢?
①touch -a filename —–>会修改文件的atime和ctime
②touch -c filename—–>会修改文件的三个时间(atime/mtime/ctime)
③touch -m filename—->仅会修改文件的mtime/ctime

1)修改文件的atime

从下图可以看出-a参数会修改文件的atime(默认情况下为系统当前时间)。

这里写图片描述

要修改文件的atime为某一具体的时间:

touch -a –date=”要修改的时间” filename
这里写图片描述

②修改文件的mtime
从下图可看出-m参数修改了文件的mtime(修改为系统的默认时间)。

这里写图片描述

要修改文件的mtime为某一具体的时间:
touch -m –date=”要修改的时间” filename

这里写图片描述

3)修改文件的atime和mtime

(-c参数会修改文件的两个时间)

这里写图片描述

要将文件的atime和mtime同时修改为一具体的时间。
touch -c –date=”要修改的时间” filename

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值