Linux之檔案元資訊的三個時間
As we all know,Linux下一切皆檔案!
小編最近在學習linux作業系統,在學習到stat+檔名命令時,發現有三個時間不知何物經過多番折騰研究,在這裡簡單講解下,如果有不對的地方希望大家指出來噢n(≧▽≦)n!
首先在Code檔案目錄下新建test.c檔案,輸入“stat test.c”檢視檔案元資訊如下圖所示:
這裡可以看到三個時間分別是Access、Modify和Change,此時這三個時間是相同的,且在圖中可以看到檔案的Size、Blocks都為零,檔案此時為regular empty file(普通空檔案)。
接下來小編將對時間逐個分析。
1.Modify
從命名上看,詞義為“修改”,那麼小編來修改一下檔案內容,看它是否會改變:
上圖中,小編使用echo命令向空檔案test.c中增加了一句“add1”,再檢視檔案時首先可以看到檔案的Size、Blocks均有所改變,檔案此時也不再為空,是“regular file”(普通檔案)。
再看三個時間,發現後兩個時間,即Modify和Change都改變了,此處且先說Modify Time,簡單的echo命令即能證明只要檔案內容被更改,它就會改變。
2.Access
從命名上看,這個時間可以理解為“訪問時間”,那麼我們就來訪問一下,看它是否會改變:
很明顯的Access時間改變了,說明cat命令檢視檔案確實能夠更改這個時間,但是檢視檔案不止這一個命令,我們來試一下別的命令是否能夠更改:
很遺憾,more命令並沒有使Access時間更改,小編也試了less命令,同樣沒有更改,那這是為什麼呢?不是都訪問了嘛?
小編簡單瞭解了一下cat、less和more這三個命令的區別,發現cat命令是直接顯示檔案全部內容的,而less和more則不同,具體區別小編隨後再仔細研究!敬請期待!
那麼,這裡可以總結一下,Access時間在cat命令下會改變,而more和less命令由於一些原因並不會更改Access的時間。
3.Change
從詞義上看是“改變”的意思,首先已經確定了Modify是檔案內容更改的最後時間,那麼小編猜測Change是檔案內容以及其他資訊(如許可權資訊)的最後更改時間,接下來看小編為大家見證奇蹟O(∩_∩)O~
首先用ll命令檢視:
上圖中,test.c對擁有者user的初始許可權為rw,沒有可執行許可權x,用“chmod”新增許可權x後,如下圖:
此時已經更改了test.c檔案的許可權資訊,此時看一下檔案元資訊是否更改:
0.0 !! 時間真的變了!
哈哈,小編猜對了吧(^__^) …
最後總結:
Access——檔案最後的訪問時間(cat命令)
Modify——檔案最後的更改時間(包括echo、vim方式等)
Change——檔案其他資訊的最後更改時間(如許可權資訊)
小編會繼續研究的!如果有什麼錯誤的地方,大家一定要說出來噢!!