前言
修改文件的时间在写这篇博客之前,看了一些文章(和技术无关),看了别人的大学生活,别人在大学时候做的事,才发现自己的大学生活的确略显苍白.
人生苦短,所以为了追上优秀的人的脚步,自己要加油了!
我记得在我补充inode节点时,里面有inode节点存储内容的一张图,在图里除了文件对应的权限之外还有三个属性.
分别是access,modify,Change,分别对应着文件最新访问时间(atime),文件内容最近变更时间(mtime),文件变更最近时间(ctime).
从名字上来看不难理解,
accesstime(atime)访问时间,也就是说这个时间标识该文件最新被访问时间.
modificationtime(mtime),修改时间,这个时间记录着文件最近被修改的时间.
changetime(status time/ctime):变更时间,当文件的状态变更时改变改时间.比如cp.mv,create
今天,我就开始尝试着变更这些文件的这几个时间.
如果需要修改文件的这几个时间,需要使用到一个命令--touch
在touch的帮助文档中,第一句就说明了touch的作用,改变文件的时间(戳).他可以将文件的访问和修改时间置为当前时间.
有一点需要注意的是,如果使用touch命令的时候,目标文件不存在,默认情况下,会创建一个新的文件.
下面主要聊一聊他的主要选项.
第一个参数a,a参数的作用仅仅是改变访问时间.
第二个参数c,使用这个选项的时候,如果目标文件不存在的话,也不会去创建一个新的文件.
第三个参数 d, d参数接受一个日期字符串,比如 touch -a -d 2017-06-16 12:01:00 文件名
第四个参数h,h参数的作用是让修改的文件不仅仅作用于其本身,同时还作用于链接文件上.
第五个参数m,m修改modification Time.
第六个参数t,t用于指定具体的时间,格式为YYMMDDhhmm,而不是使用当前时间.
剩下的就是不很重要的选项了.
一般情况下我们会怎么用这个命令呢?
比如,我现在有这么一个文件:touch.txt,使用stat 命令查看文件的节点信息如下.
我们可以看到touch.txt文件的atime,mtime和ctime.
这时候呢,我想改变一下,这个文件的atime.可以直接使用touch -a 命令
比如.
如果想要概念mtime,同时使用-m参数即可.
所以,touch命令貌似并不难,而且,touch命令除了在一些特殊的场景下,用的应该并不多吧.
结束语
本来这篇博客是想写文件的默认权限和特殊属性的,然后将touch命令夹杂在其中,但是想了想,还是觉得这篇还是单独放比较好一点.