Linux文件的时间及修改命令touch
Linux系统中的文件主要有三个时间参数,他们分别是修改时间(modification time,mtime)、状态时间(status time,ctime)、访问时间(access time,atime),具体含义如下:
⑴修改时间(modification time,mtime)
主要指的是文件的内容发生改变时,这个修改时间会发生变化,而文件的权限和属性变化时这个时间不会改变,如往文件中添加内容时会更新这个时间。
⑵状态时间(status time,ctime)
主要指的是文件状态改变,也就是文件的属性和权限发生变化的时间,文件的权限或属性发生改变这个时间就会更新。
⑶访问时间(access time,atime)
主要指的是文件被读取的时间,当文件被访问时这个时间就会发生改变,如使用cat命令查看文件内容时会更新这个时间。
文件的时间对于某些程序来说可能是非常重要的,时间不对就有可能会导致程序无法顺利执行。导致文件时间不对的情况还是非常多的,如设置BIOS时间不对,主板电池原因或者时间模块电路问题变慢等,以及时差因素都可能会引发错误的时间。
㈠更改文件的mtime并查看
当我们往文件中添加内容或者减少内容时文件的修改时间(mtime时间)会发生改变,也就是文件中的内容发生改变时这个mtime时间就会改变。如图2-34所示。
上图中的命令date;ll的意思是,有两个命令分别是date(显示计算机的时间)和ll(ls –l命令的别名)(详细列表文件的命令)。划红线的部分则是把“this my file”这个内容添加到文件cal2008的末尾中,文件内容发生变化,mtime也更新了。
㈡更改文件的ctime(状态时间)并查看
文件的ctime时间指的是文件的属性等相关内容的变化,而不是文件内容的变化时间,修改文件的权限这个时间会发生更新。如图2-35所示。
㈢更改文件的atime(访问时间)并查看
在默认的情况下,使用ls命令显示出来的是该文件的mtime(文件内容修改时间),这也是我们要关心的问题。
㈣变更文件的各种时间
变更文件的时间可以使用touch命令,其命令的格式如下:
命令:touch [选项] 文件
其中选项主要有:
⑴-a:只定义access time;
⑵-c:只修改文件的时间,若该文件不存在由不建立新文件;
⑶-d或--date=“日期或时间”:自定义自己的时间,而不使用目前的时间;
⑷-m:只修改mtime时间;
⑸-t:自定义自己的时间,而不使用目前的时间,其格式为[YYYYMMDDhhmm]。
如果touch命令后跟文件名,如果文件不存在则创建一个空文件,而如果文件存在则修改文件的全部时间为当前的时间。如图2-37所示。
修改文件的atime和mtime时间为2050年12月31日,如图2-38所示。