文件的时间属性(摘自网友的博客)
linux下的stat命令查看文件系統(tǒng)的時(shí)間
注明:本文摘自網(wǎng)友的博客,因覺(jué)得自己做不到這么好。所以全文復(fù)制過(guò)來(lái)的。
文?件系統(tǒng)的三個(gè)時(shí)間? ?對(duì)于window操作系統(tǒng)相信大家都不陌生,如果我們?cè)趙indow下創(chuàng)建一個(gè)文件,window操作系統(tǒng)就會(huì)對(duì)這個(gè)文件產(chǎn)生相應(yīng)的描述信息,這個(gè)文件存在創(chuàng)建時(shí)間,修改時(shí)間和訪(fǎng)問(wèn)時(shí)間.那仫在linux操作系統(tǒng)下新建一個(gè)文件是不是也會(huì)出現(xiàn)相應(yīng)的描述信息呢?
? ? 答案是肯定的,只是在linux系統(tǒng)下是沒(méi)有該文件的創(chuàng)建時(shí)間的,只有訪(fǎng)問(wèn)時(shí)間,修改時(shí)間和狀態(tài)改動(dòng)時(shí)間,具體情況分析見(jiàn)下圖:
? ?
? ? 通過(guò)上圖我們發(fā)現(xiàn)在linux下創(chuàng)建一個(gè)文件存在Inode號(hào),文件的鏈接數(shù)和Block這些屬性,這主要和linux下文件的屬性有關(guān).在linux操作系統(tǒng)下一個(gè)文件具有一個(gè)Inode號(hào),一個(gè)Inode號(hào)對(duì)應(yīng)至少一個(gè)block塊,block是訪(fǎng)問(wèn)文件內(nèi)容的結(jié)構(gòu),文件block塊的個(gè)數(shù)和文件的大小有關(guān),且block的大小是固定的.
? ? 今天主要理解的是文件系統(tǒng)中三個(gè)時(shí)間>
一.Access---訪(fǎng)問(wèn)時(shí)間atime
? ? 當(dāng)我們?cè)L問(wèn)這個(gè)文件的時(shí)候,這個(gè)時(shí)間就會(huì)被改變,這個(gè)訪(fǎng)問(wèn)時(shí)間提示的是最后一次我們?cè)L問(wèn)的時(shí)間。例如當(dāng)我們使用cat,more和less等命令查看文件的內(nèi)容時(shí),該文件的訪(fǎng)問(wèn)時(shí)間就會(huì)被更新
二.Modify---修改時(shí)間mtime
? ? 這里所說(shuō)的就是文件內(nèi)容最后的修改時(shí)間,不涉及該文件的權(quán)限問(wèn)題。例如當(dāng)我們使用vim,echo等命令向文件中寫(xiě)信息的時(shí)候該修改時(shí)間會(huì)被更新.
三.Change---狀態(tài)改動(dòng)時(shí)間ctime
? ? 這里所說(shuō)的改變就是改變Inode中的信息,例如當(dāng)修改文件系統(tǒng)中的links鏈接數(shù),size文件的大小,文件的權(quán)限,blocks文件的blocks數(shù)時(shí)狀態(tài)改動(dòng)時(shí)間就會(huì)被修改.
? 下面以一個(gè)實(shí)際的栗子來(lái)觀(guān)察這三個(gè)時(shí)間的改動(dòng)>
? ?1.使用cat +文件名的方式讀取該文件的內(nèi)容時(shí)訪(fǎng)問(wèn)時(shí)間被修改
? ?
?
? ?2.使用echo命令向文件99.c中添加信息
?
? ?
?
? 3.當(dāng)修改文件的權(quán)限時(shí)該狀態(tài)修改時(shí)間會(huì)被改變
?
? ?
?
? ?現(xiàn)在應(yīng)該可以解決之前那個(gè)問(wèn)題了,為什仫向文件中寫(xiě)信息的時(shí)候,該文件的修改時(shí)間和狀態(tài)改動(dòng)時(shí)間都會(huì)被修改?當(dāng)寫(xiě)信息的時(shí)候改動(dòng)了文件的size,由上述舉例可知當(dāng)改動(dòng)了文件的size時(shí)文件的狀態(tài)改動(dòng)時(shí)間就會(huì)被修改.
touch和三個(gè)時(shí)間的關(guān)系>
touch指令的功能為:? ?
? ? ? ?1.新建一個(gè)文件
? ? ? ?2.修改文件的時(shí)間戳就是把已經(jīng)存在的文件時(shí)間變?yōu)橄到y(tǒng)當(dāng)前的時(shí)間,把數(shù)據(jù)原封不動(dòng)的保存下來(lái)
? ? ? ?
[cpp]?view plaincopy?
?
? ? touch -a
?
? ??
? ? ?touch -m,修改mtime和ctime,但實(shí)質(zhì)修改的是mtime
?
? ??
? ? ? touch -m修改的是mtime為什仫ctime也會(huì)被修改呢?那是因?yàn)楫?dāng)這個(gè)文件被touch之后無(wú)論進(jìn)行什仫處理,都會(huì)修改該文件的Inode,所以ctime是一定會(huì)修改.
?總結(jié)>
? ?1.剛開(kāi)始創(chuàng)建文件的時(shí)候這三個(gè)時(shí)間atime,mtime和ctime是相等的,此時(shí)并未進(jìn)行任何的操作,可默認(rèn)就是該文件的創(chuàng)建時(shí)間.
? ?2.當(dāng)該文件被讀之后,只會(huì)改變atime的值
? ?3.當(dāng)修改文件的內(nèi)容信息的時(shí)候會(huì)同時(shí)修改文件的mtime和ctime
? ?4.當(dāng)inode被修改或者文件的權(quán)限被修改之后該文件的ctime就會(huì)被修改
?
轉(zhuǎn)載于:https://www.cnblogs.com/kaishirenshi/p/7677734.html
總結(jié)
以上是生活随笔為你收集整理的文件的时间属性(摘自网友的博客)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 代码整洁之函数
- 下一篇: 微软的Ajax库客户端Bug总结