三個(gè)UNIX文件時(shí)間ctime、mtime、atime
?????? 我曾經(jīng)根據(jù)文件的狀態(tài)在指定時(shí)間內(nèi)是否改變寫過一個(gè)WatchDog來對(duì)服務(wù)進(jìn)行監(jiān)控,其間曾被這三個(gè)時(shí)間搞混淆,所以覺得很有必要和大家分享我對(duì)這三個(gè)術(shù)語(yǔ)的理解。
????? ctime(change time)改變時(shí)間:是指文件狀態(tài)最后一次被改變的時(shí)間;
????? mtime(modification time)修改時(shí)間:是指文件內(nèi)容最后一次被改變的時(shí)間;
????? atime(access time)訪問時(shí)間:是指文件最后一次被讀取的時(shí)間。
????? 前兩者的區(qū)別就在于文件狀態(tài)的改變既包括文件索引節(jié)點(diǎn)的改變,也包括文件內(nèi)容的改變。也就是說如果你改變了文件內(nèi)容,則同時(shí)更新了ctime和mtime,但是如果你只改變了文件索引節(jié)點(diǎn)則只是改變了ctime。atime只有在文件被讀取的時(shí)侯才會(huì)改變。它的改變與文件狀態(tài)以及文件內(nèi)容的改變沒有直接的聯(lián)系。
???? 例如:echo “Hello World” >> myfile 則同時(shí)改變了ctime和mtime,atime不變;
???? chmod u+x myfile 則只改變了ctime,mtime和atime不變。
???? cat myfile,則只改變了atime,ctime和mtime不變
???? ps:以上操作均在redhat linux下驗(yàn)證通過