歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下文件的三個時間(Atime,Mtime,Ctime)

Linux下文件的三個時間(Atime,Mtime,Ctime)

日期:2017/2/28 13:49:25   编辑:Linux教程

文件的三個時間

我們已經很熟悉windows系統了,那麼我們在windows下新建一個文件,我們知道它在保存的時候肯定是會保存一下文件的創建時間之類的信息的,那麼我們來看看windows下的一個文件保存了幾個時間信息。

這是我在電腦找到的一個cpp文件,看它的屬性是可以看到保存了這個文件的創建時間、修改時間、和訪問時間三個時間。

那麼在linux中是怎樣的,我們在linux中新建一個文件,然後用stat命令查看文件信息,如下圖:

可以從上圖看到系統為我們保存了這個的三個時間,分別是Access time、Modify time、Change time,也就是訪問時間、修改時間和狀態時間。

那麼與前面所說的windows下做一個對比:

在windows下,一個文件有:創建時間、修改時間、訪問時間。
而在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態時間

那麼可以知道,在linux中是文件是沒有創建時間的,只是如果剛剛創建一個文件,毋庸置疑它的三個時間是都等於創建時間的,就像剛才創建的test文件,我們看到它的三個時間是相等的。那麼在linux上這三個時間分別代表著什麼,隨著什麼而改變:

>修改時間:文件的內容被最後一次修改的時間,我們經常用的ls -l命令顯示出來的文件時間就是這個時間,當用vim對文件進行編輯之後保存,它的mtime就會相應的改變;

>訪問時間:對文件進行一次讀操作,它的訪問時間就會改變。例如像:cat、more等操作,但是像之前的state還有ls命令對atime是不會有影響的;

>狀態時間:當文件的狀態被改變的時候,狀態時間就會隨之改變,例如當使用chmod、chown等改變文件屬性的操作是會改變文件的ctime的。

…………………………………………………………………………………………………

每個時間改變的例子

》》上面的文件信息中可以看到test文件的訪問權限,那麼我現在給擁有者添加執行權限,chmod u+x test,再此進行stat操作:

可以看到這個改變了它權限的操作知識改變了test的狀態時間,其他兩個時間是沒右改變的。

》》現在對文件進行讀操作,cat test,但此時我們的test中還沒有寫入什麼東西,所以是不會有什麼顯示出來的

和之前的對比可以看到此時是只有訪問權限改變了,其他權限沒有變化

》》最後我們再來用vim指令對test進行編輯,給文件中簡單的寫入"Hello !"

咦,此時雖然說文件的修改時間發生了改變,但同時訪問時間和狀態時間也被改變了,那麼到底是不是修改時間被改變就改變了文件的三個時間呢?其實這也很好理解,當用vim對文件進行了編輯,那麼相應的也相當於訪問了文件並且你對文件進行了內容上的添加,這個文件的的大小等狀態也發生了變化,所以文件的訪問時間和狀態時間也會跟著改變,並不奇怪。那麼如果我只是用vim命令,沒有進行文件內容的添加而是直接退出,就只有它的訪問時間發生了改變,說明vim操作先對文件進行訪問,如下圖所示:

…………………………………………………………………………………………………

單獨查看三個時間的操作

除了可以通過stat來查看文件的mtime,ctime,atime等屬性,也可以通過ls命令來查看,具體如下:

ls -lc filename 列出文件的 ctime (最後更改時間)

ls -lu filename 列出文件的 atime(最後存取時間)

ls -l filename 列出文件的 mtime (最後修改時間)

Copyright © Linux教程網 All Rights Reserved