文件的三個時間
相信大家都已經很熟悉windows操作系統了,當我們在windows系統下創建一個文件時,系統同時會為這個文件建立相關的參數去描述這個文件,如圖:
這些參數包括文件的大小,文件類型,位置,,以及創建、修改、訪問這三個文件時間。那么我們看看再Linux系統下是否會有相似的參數呢?
在Linux下,我們可以用stat+文件名查看文件的相關參數,具體參數解釋如下圖:
在Linux中的文件系統下,我們發現除了文件的大小,文件名,文件時間等,還多了Inode號和block的相關信息,這主要和Linux文件系統的構成有關,在Linux下一個文件具有一個Inode號,一個Inode號對應著至少一個block塊,bolck是訪問文件內容的結構,文件block塊的個數和文件的大小有關,并且在Linux系統下,block塊的大小是固定的。今天我們主要介紹一下Linux系統下的三個時間,他們分別是
Access Time(訪問時間)、Modify Time(修改時間)、Change Time(改變時間)。
atime
atime是Access Time的簡寫,它在Linux的文件系統中被稱為訪問時間,當文件的內容被訪問時,就會更新這個時間,例如我們使用cat、more、less等命令查看文件的內容時,文件的訪問時間就會被更新,如下圖:
mtime
mtime是Modification Time的簡寫,它指的是當“內容數據”被修改時,Linux系統會去更新這個時間,例如:我們用echo,vim等指令向文件寫數據
在上圖中,當我們用echo指令向test.txt文件中寫入字符串時,我們發現mtime和下面我們要提到的ctime都被改了,先讓我們進入下面的ctime中去看看為什么會產生這樣的結果把!
ctime
ctime是Linux系統中的status time,即狀態時間,當文件的狀態即文件的屬性被改變是就會更改這個時間,例如文件系統中的links(鏈接數),size(文件的大小)、文件的權限、blocks(文件的block數);當這些參數被改變時,Linux就會更改該文件所對應的這個時間參數。
現在你可能會明白剛才修改文件的mtime時為什么文件的ctime也會跟著被改變了吧,因為當文件的內容被修改,文件的大小即size是一定會發生改變的,所以文件的狀態時間會隨著文件的內容被修改從而被更新。所以說文件的mtime被修改,該文件的ctime也會被改變。
查看文件時間的其他方式
1.ls -l +–time=xx時間+文件名;
該種查詢方法默認情況下顯示的是文件的mtime.
2.ls -lx +文件名
這種查詢方式中
c<—->ctime
u<—->atime
ls -lc filename 列出文件的 ctime (最后更改時間)
ls -lu filename 列出文件的 atime(最后存取時間)
ls -l filename 列出文件的 mtime (最后修改時間)
總結
三個文件時間記錄了Linux文件系統下的文件被訪問,修改,以及改變的時間,當Linux下的文件或者程序出現問題,我們可以通過查詢這些時間來判斷我們什么時候做了什么操作從而對這些文件產生了影響。