Linux 檔案時間詳解

2021-10-03 15:36:30 字數 2002 閱讀 7572

linux系統檔案有三個主要的時間屬性,分別是 ctime(change time), atime(access time), mtime(modify time)。這三個時間很容易混淆,準備深入了解linux的童鞋請區分這三者的區別

atime:access time,是在讀取檔案或者執行檔案時更改,即檔案最後一次被讀取的時間。

說明: st_atime

time when file data was last accessed. changed by the

following functions: creat(), mknod(), pipe(),

utime(2), and read(2).

mtime:modified time,是在寫入檔案時隨檔案內容的更改而更改,是指檔案內容最後一次被修改的時間。

說明: st_mtime

time when data was last modified. changed by the fol-

lowing functions: creat(), mknod(), pipe(), utime(),

and write(2).

ctime:change time,是在寫入檔案、更改所有者、許可權或鏈結設定時隨 inode 的內容更改而更改,即檔案狀態最後一次被改變的時間。

說明: st_ctime

time when file status was last changed. changed by the

following functions: chmod(), chown(), creat(),

link(2), mknod(), pipe(), unlink(2), utime(), and

write().

很多人把它理解成create time,包括很多誤導人的書籍也是這麼寫。實際上ctime是指change time。

注意:1、修改是文字本身的內容發生了變化(mtime)

改變是檔案的索引節點發生了改變(ctime)

2、如果修改了檔案內容,則同時更新ctime和mtime

3、如果只改變了檔案索引節點,比如修改許可權,則只是改變了ctime

4、如果使用ext3檔案系統的時候,在mount的時候使用了noatime引數則不會更新atime的資訊,即訪問檔案之後atime不會被修改,而這個不代表真實情況

小知識:這三個 time stamp 都放在 inode 中。若mtime,atime修改, inode 就一定會改,相應的inode改了,那ctime 也就跟著要改了,之所以在mount option中使用 noatime, 就是不想 file system 做太多的修改, 從而改善讀取效能.

檢視檔案的 atime、ctime 和 mtime。

例子1: # echo 「hello world」 >> myfile atime不變,同時改變了ctime和mtime

2: # cat myfile ctime和mtime不變,只改變atime

# ls myfile

ctime和mtime以及atime都不改變

3: # chmod u+x myfile mtime和atime不變,只改變ctime

4: # mv myfile …/

mtime和atime不變,只改變ctime

其他擴充套件:

relatime屬性

從kernel2.6.29開始,預設整合了乙個 relatime的屬性。使用這個特性來掛裝檔案系統後,只有當mtime比atime更新的時候,才會更新atime。

使用場景:

在檔案讀操作很頻繁的系統中,atime更新所帶來的開銷很大,所以在掛裝檔案系統的時候使用noatime屬性來停止更新atime。但是有些程式需要根據atime進行一些判斷和操作,這個時候relatime特性就派上用場了。其實在事實上,這個時候atime和mtime已經是同乙個time,所以可以理解這個選項就是為了實現對atime的相容才推出的,並不是乙個新的時間屬性。

使用方法: # mount -o relatime /dir##掛載目錄的時候加relatime引數

linux 檔案時間詳解

在linux中,沒有檔案建立時間的概念。只有檔案的訪問時間 修改時間 狀態改變時間。也就是說不能知道檔案的建立時間。但如果檔案建立後就沒有修改過,修改時間 建立時間 如果檔案建立後,狀態就沒有改變過,那麼狀態改變時間 建立時間 如果檔案建立後,沒有被讀取過,那麼訪問時間 建立時間,這個基本不太可能。...

linux 檔案時間

linux 檔案一般有三個時間 通過stat或者lstat獲取檔案屬性 可以得到檔案的st atime,st mtime,st ctime 當使用 cat read 等一系列讀取檔案操作的時候,檔案的st atime會跟隨著一直改變 我的系統是ubuntu,當使用vi操作的時候,檔案的訪問時間st ...

Linux檔案詳解

一 linux檔案型別分 普通檔案 目錄檔案 鏈結檔案 裝置檔案 管道檔案。1 普通檔案 由ls al顯示屬性時,第乙個屬性為 例如 rwxrwxrwx 包括 資料格式檔案 data 某些程式在執行過程中,會讀取特定格式的檔案,這些特定格式的檔案可以稱為資料檔案 datafile 2 目錄檔案 di...