Linux中用stat命令查看文件時3個時間點解析

有些時候,我們需要使用stat命令來查看文件的詳細信息。另外聯想下,ls -l命令顯示的是什麼時間,touch命令修改文件的時間戳,修改的又是什麼時間?在這裏我們一起來試驗下。

首先,我們來看下stat情況

wKioL1So93qD3jDBAAEhdyaEVwY678.jpg

如圖所示,會出現3個類型的時間,分別是Access,Modify,Change。下面我們就對這3個時間進行詳細解釋下。

access time:表示我們最後一次訪問(僅僅是訪問,沒有改動)文件的時間

modify time:表示我們最後一次修改文件的時間

change time:表示我們最後一次對文件屬性改變的時間,包括權限,大小,屬性等等。

例如,我們使用cat命令來查看下此文件:

wKiom1So976A45N_AAE4z3X4VsY398.jpg

此時,文件的access 時間修改了。access時間我們可以理解爲我們最後一次訪問文件的時間。


我們再來看下change時間的情況:

wKiom1So-JPxm5ijAAD93WKlMEk653.jpg

此時,當我們修改文件的屬性等時,change 的時間會隨着改變,但modify時間是不變的,因爲我們沒有對文件內容進行修改。


下面我們接着看modify時間的情況:

wKiom1So-VCTorFNAADbC8ts5k4777.jpg

此時我們可以看到,3個時間點都發生了改變。

由此,我們可以知道

1,當我們僅僅只是讀取文件時,access time 改變,而modify,change time 不會改變

2,當修改文件時,access,modify,change time 都會跟着改變

3,當修改文件屬性時,change time 改變,而access,modify time 不變。


那麼,我們使用的命令ls -l顯示的又是什麼時間呢?touch修改文件的時間戳的時候修改的是什麼時間呢?

那我們來繼續看下。

ls -l 顯示的時間

wKioL1So_M-TjmxpAAK3qMH1xs4964.jpg此時,對比能夠發現,ls -l顯示的時間是文件的修改時間。



最後,touch修改的又是什麼時間呢?

首先我們看下touch的man幫助即可幫我找到答案。


wKioL1So_bfgyKYTAAGkcY_pqyM374.jpg

不信的話我們再試試看。(不過呢,如果不加參數的話,是所有的時間都會修改掉的。上圖中的man touch中有個-a參數,只修改access時間。這個加參數的大家可以自己試下。)

我們直接touch b.txt吧,因爲b.txt文件已經存在了,不會新建而是修改其時間戳。

wKioL1So_tGyeqOVAAGI5K5AxYg128.jpg至此,我想大家應該搞明白了這幾個命令的時間問題了。不懂的可以留言我們討論下。

才疏學淺,有不對的地方還請大神指點。互相學習。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章