文件的三個時間linux
咱們已經很熟悉windows系統了,那麼咱們在windows下新建一個文件,咱們知道它在保存的時候確定是會保存一下文件的建立時間之類的信息的,那麼咱們來看看windows下的一個文件保存了幾個時間信息。vim
這是我在電腦找到的一個cpp文件,看它的屬性是能夠看到保存了這個文件的建立時間、修改時間、和訪問時間三個時間。windows
那麼在linux中是怎樣的,咱們在linux中新建一個文件,而後用stat命令查看文件信息,以下圖:ide
能夠從上圖看到系統爲咱們保存了這個的三個時間,分別是Access time、Modify time、Change time,也就是訪問時間、修改時間和狀態時間。spa
那麼與前面所說的windows下作一個對比:blog
在windows下,一個文件有:建立時間、修改時間、訪問時間。
而在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態時間get
那麼能夠知道,在linux中是文件是沒有建立時間的,只是若是剛剛建立一個文件,毋庸置疑它的三個時間是都等於建立時間的,就像剛纔建立的test文件,咱們看到它的三個時間是相等的。那麼在linux上這三個時間分別表明着什麼,隨着什麼而改變:it
>修改時間:文件的內容被最後一次修改的時間,咱們常常用的ls -l命令顯示出來的文件時間就是這個時間,當用vim對文件進行編輯以後保存,它的mtime就會相應的改變;class
>訪問時間:對文件進行一次讀操做,它的訪問時間就會改變。例如像:cat、more等操做,可是像以前的state還有ls命令對atime是不會有影響的;test
>狀態時間:當文件的狀態被改變的時候,狀態時間就會隨之改變,例如當使用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 (最後修改時間)
文章原創做者:Mr_Listening https://home.cnblogs.com/u/MrListening/