天天看點

你應該知道Linux的這三個檔案時間

檔案的三個時間

相信大家都已經很熟悉windows作業系統了,當我們在windows系統下建立一個檔案時,系統同時會為這個檔案建立相關的參數去描述這個檔案,如圖:

你應該知道Linux的這三個檔案時間

這些參數包括檔案的大小,檔案類型,位置,,以及建立、修改、通路這三個檔案時間。那麼我們看看再linux系統下是否會有相似的參數呢?

在linux下,我們可以用stat+檔案名檢視檔案的相關參數,具體參數解釋如下圖:

你應該知道Linux的這三個檔案時間

在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等指令檢視檔案的内容時,檔案的通路時間就會被更新,如下圖:

你應該知道Linux的這三個檔案時間

mtime

mtime是modification time的簡寫,它指的是當“内容資料”被修改時,linux系統會去更新這個時間,例如:我們用echo,vim等指令向檔案寫資料

你應該知道Linux的這三個檔案時間

在上圖中,當我們用echo指令向test.txt檔案中寫入字元串時,我們發現mtime和下面我們要提到的ctime都被改了,先讓我們進入下面的ctime中去看看為什麼會産生這樣的結果把!

ctime

ctime是linux系統中的status time,即狀态時間,當檔案的狀态即檔案的屬性被改變是就會更改這個時間,例如檔案系統中的links(連結數),size(檔案的大小)、檔案的權限、blocks(檔案的block數);當這些參數被改變時,linux就會更改該檔案所對應的這個時間參數。

你應該知道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下的檔案或者程式出現問題,我們可以通過查詢這些時間來判斷我們什麼時候做了什麼操作進而對這些檔案産生了影響。

本文轉自d1net(轉載)

繼續閱讀