概述
每个文件在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)
最后
以上就是迷你水蜜桃为你收集整理的Linux修改文件时间或创建新文件:touch的全部内容,希望文章能够帮你解决Linux修改文件时间或创建新文件:touch所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复