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