天天看點

POSIX下三種time(atime,mtime,ctime)

在windows下一個檔案有三種時間屬性:

1>建立時間

2>修改時間

3>通路時間

相似的在Linux下一個檔案也有三種時間屬性:

(與windows不同的是linux沒有建立時間,而多了個通路時間)

1>通路時間(access time 簡寫為atime)

2>修改時間(modify time 簡寫為mtime)

3>狀态修改時間(change time 簡寫為ctime)

關于Linux底下三種時間的簡單介紹:

atime:(access time)顯示的是檔案中的資料最後被通路的時間,比如系統

的程序直接使用或通過一些指令和腳本間接使用。(執行一些可執行檔案或腳本)

mtime: (modify time)顯示的是檔案内容被修改的最後時間,比如用vi編輯

時就會被改變。(也就是Block的内容)

ctime: (change time)顯示的是檔案的權限、擁有者、所屬的組、連結數發

生改變時的時間。當然當内容改變時也會随之改變(即inode内容發生改變和Block内容

發生改變時)

下來小編我給大家看一個執行個體

    首先打開我的終端Terminal,(cd XXX)進入自己所要建檔案的目錄底下(我的

目錄為cmd),(touch xxx,建一個檔案,我的檔案名為file.txt)),(vim xxx)打開

你所建的檔案,并且修改其内容,退出該檔案。

POSIX面向多個connector, 比如nodejs的fs核心子產品, 做portless的crud也是非常友善的.

檢視這三種時間:

使用的指令為:

stat filename           

如下圖:

在此說明:

(因為我們在建立檔案之後修改過檔案是以三個時間是不一樣的,如果隻是單純地創

建檔案,那麼它們三個應該是相等的。)

  擴充知識:

         另外,從kernel2.6.29開,還預設內建了一個relatime的屬性。可能是因為在檔案讀操作很頻繁的系統

中,atime更新所帶來的開銷很大,是以很多SA都在挂裝檔案系統的時候使用noatime屬性來停止更新atime。但是有些程式需要根據atime進行一些判斷和操作,是以Linux就推出了一個relatime特性。

使用這個特性來挂裝檔案系統後,隻有當mtime比atime更新的時候,才會更新atime。事實上,這個時候atime和mtime已經是同一個東西了。是以這個選項就是為了實作對atime的相容才推出的。并不是一個新的時間屬性。使用方法就是通過mount -o relatime /dir來挂裝目錄.

             》》》》》到此結束!