确切的说不存在创建时间。若文件从创建后不曾修改过则可认为创建时间=修改时间,若文件创建后状态也不曾改变过则可认为创建时间=改变时间,若文件创建后不曾被读取过则可认为创建时间=访问时间。但是,但是,上述情况基本上是不可能的,也就是说几乎不可能获取到文件的创建时间。

可以通过stat命令查看文件的状态

可以看到该文件的访问时间、修改时间、改变时间均为13:36:55。此处这一时间也是该文件的创建时间,因为文件创建后没有发生过访问、修改和改变。

Ø  访问时间(accesstime):读取一次文件的内容,该时间便会更新。比如对这个文件使用less命令或者more命令。(ls、stat这样的命令不会修改文件访问时间)

可以看到对文件使用more\less\cat命令后文件的访问时间分别变化为最后一次访问的时间,而文件的修改时间和改变时间并没有发生变化。

可以看到,对文件使用ls\stat命令列出文件属性\显示文件状态后文件的访问时间并没有发生变化,这是因为这些过程并没有读取文件内容本身。

Ø  修改时间(modifytime):对文件内容修改一次便会更新该时间。例如使用vim等工具更改了文件内容并保存后,文件修改时间发生变化。通过ls –l列出的时间便是这个时间。要想看到文件访问时间可使用ls –ul命令。

当前的文件状态。

使用vim编辑文件添加了“test file access time,modify time,change time”后保存文件,查看文件的状态,可以看到文件的修改时间发生了变化。但值得注意的是文件的访问时间和改变时间也发生了变化。这是问什么呢?这是因为我们通过vim打开文件实际上也是访问了文件因此文件访问时间会更新,而当添加了内容并保存后文件的大小、块数、时间数据等状态也发生了变化,因此其状态改变时间也被更新。也就是说修改文件内容往往也会更新文件的状态改变时间和访问时间,但不是绝对的。后边的例子会讲解这种情况。

这一次我们只通过vim打开文件,不进行任何编辑再保存文件,查看得知文件的访问时间发生了变化而修改时间和状态改变时间并没有被更新。这印证了通过vim编辑文件实际上是先访问了文件的说法。另外也说明只要其内容没有发生变化,那么文件的修改时间也保持不变。

ls –l命令显示文件的修改时间,ls –ul命令显示文件的访问时间。

Ø  改变时间(changetime):更改文件的属性便会更新该时间,比如使用chmod命令更改文件属性,或者执行其他命令时隐式的附带更改了文件的属性若文件大小等。

当前的访问时间、修改时间、状态变化时间。

执行完chmod命令后查看文件状态发现状态变化时间被更新。访问时间和修改时间保持不变,因为这一过程并没有读取文件内容也没改变文件内容

通过重定向命令来改变文件内容会更新文件的修改时间和状态改变时间。因为这一过程修改了文件内容,改变了文件大小、修改时间等状态,而没有读取文件的内容。这也验证了“修改文件内容往往也会更新文件的状态改变时间和访问时间,但不是绝对的。”这一说法。