Linux修改文件时间或创建新文件:touch

每个文件在Linux下面都记录了许多的时间参数,其实是三个主要的变动时间

修改时间(modification time,mtime):当该文件的【内容数据】变更时,就会更新这个时间,内容数据是指文件的内容,而不是文件的属性或权限

状态时间(status time,stime):当该文件的【状态(status)】改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间

读取时间(access time,atime):当【该文件的内容被读取】时,就会更新这个读取时间(access),举例来说,我们使用cat去读取该文件时,就会更新该文件的atime

在默认情况下,ls显示的是该文件的mtime,也就是这个文件的内容上次被修改的时间

当文件时间发生错误时,会造成某些程序无法顺利运行。时间为什么会发生错误呢?举例来说,当我们选择的时区错误(有些地方的时区时间会比中国时间快),等我们将时间改回正确时间时,该文件的时间可能来自“未来”

touch 【-acdmt】 文件

选项与参数:

-a:仅自定义access time

-c:仅修改文件的时间,若该文件不存在也不建立新文件

-d:后面可以接自定义的时间而不用目前的时间,也可以使用--date=“日期或时间”

-m:仅修改mtime

-t:后面可以接自定义的时间而不用目前的时间,格式为[YYYYMMDDhhmm]

使用touch命令,如果touch后接文件,则会将该文件的三个时间(atime/ctime/mtime)都更新为当前时间,如果后面没有接文件,则会主动创建一个空文件

ll命令为ls -l命令的别名,“;”代表连续命令的执行

因为上图中的bashrc文件是复制过来的,所以mtime与原文件相同,而文件为新文件是刚刚建立的所以它的ctime为现在的时间 ,但是cp文件会将原文件的内容读出后读入该文件,所以两个文件的atime都会发送变动,并且新文件的创建时间慢于读取时间

 变更时间:

我们可以看见atime与mtime都发生了改变,但是ctime没有变化,它是记录目前的时间

所以我们复制一个文件,复制所有属性,也没有办法复制ctime这个属性,ctime是记录这个文件最近的状态被改变的时间

我们平时看的文件属性中,比较重要的还是mtime,因为我们关心的常是这个文件的内容是什么时候修改的

touch常用场景:

  • 建立一个空文件
  • 将某个文件日期定义为目前(mtime与atime)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值