相关知识
每个档案在 linux 下都会记录许多的时间参数,其实是有三个主要的变动时间,分别如下:
- modification time (mtime):
当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限。
下面的例子来查看mtime:[root@www ~]# ls -l /etc/man.config
- status time (ctime):
当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限或属性被更改了,都会更新这个时间。
下面的例子来查看ctime:[root@www ~]# ls -l --time=ctime /etc/man.config
- access time (atime):
当『该档案的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的 atime 了。
下面的例子来查看atime:[root@www ~]# ls -l --time=atime /etc/man.config
语法
指令语法如下:
[root@www ~]# touch [-acdmt] 档案
选项与参数:
-a :仅修订 access time
-c :仅修改档案的时间,若该档案不存在则不建立新档案
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
在预设的状忞下,如果 touch 后面有接档案,则该档案的三个时间 (atime/ctime/mtime) 都会更新为目前的时间。
若该档案不存在,则会主动的建立一个新的空的档案。
作用
通过 touch 这个指令,我们可以轻易的修改档案的日期或时间。并且也可以建立一个空的档案!
不过,要注意的是,即使我们复制一个档案时,复制所有的属性,但也没有办法复制 ctime 这个属性的。ctime 可以记录这个档案最近的状忞 (status) 被改变的时间。
我们平时看的文件属性中,比较重要的还是mtime。我们关心的常常是这个档案的『内容』 是什么时候被更改的。
touch 这个指令最常被使用的情况是:
- 建立一个空的档案;
- 将某个档案日期修订为目前 (mtime 与 atime)