Linux下文件的時間屬性

Linux下文件的時間屬性node


 

每一個文件都有三個主要的時間屬性,這三個時間屬性的意義是什麼呢?web


  • modify time (mtime)bash

   當該文件的「內容數據」更改時,就會更新這個時間。內容數據指的是文件的內容,而不是文件的屬性或權限。ide

  • change time (ctime)性能

   當該文件的「狀態、元數據」更改時,就會更新這個時間。好比更改文件權限、屬主、屬組、文件名等元數據。this

  • access time (atime)spa

   當該文件的「內容被訪問、讀取」時,就會更新這個讀取時間(access)。好比經過cat,more命令去讀取文件,那麼就會更新該文件的atime了。
orm




如何【查看】文件的三個時間屬性?開發


 

stat命令, 能夠顯示文件或者文件系統狀態。
it

語法:
stat [OPTION]... FILE...

[root@web ~]# stat strerror.c 
  File: `strerror.c'
  Size: 201           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 143765      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-11 21:00:46.976652765 +0800
Modify: 2016-02-11 21:00:40.286651956 +0800
Change: 2016-02-11 21:00:40.342654314 +0800


默認狀況下, ls 顯示出來的是該文件的 mtime, 也就是這個文件的內容上次被更改的時間。

[root@web ~]# ls -l strerror.c 
-rw-r--r-- 1 root root 201 Feb 11  2016 strerror.c
[root@web ~]# ls -l --time=atime strerror.c 
-rw-r--r-- 1 root root 201 Feb 11  2016 strerror.c
[root@web ~]# ls -l --time=ctime strerror.c 
-rw-r--r-- 1 root root 201 Feb 11  2016 strerror.c



如何【修改】文件的三個時間屬性?


 

touch命令能夠修改文件的時間屬性。

touch [OPTION]... FILE...

-a     change only the access time
-m     change only the modification time 
-r, --reference=FILE    use this file’s times instead of current time



針對 access time 沒有改變的問題


 

有時候,用 cat filename,或者 more filename 訪問相應文件時,並無刷新文件的 access time ,而是在修改了文件內容以後,才刷新了access time, 以及 modity time。


官方解釋:

在kernel版本 2.6.30以前, Linux的核心開發人員針對 ext3/ext4文件系統的性能進行討論,其中包括 atime。 在 kernel 2.6.30 以前,文件系統中默認會及時的更新atime,這樣會帶來兩個問題。

(1)系統中大量的文件訪問,將atime寫入到磁盤中,消耗時間,從而下降系統性能

(2)頻繁的更新操做,也會消耗大量電能


其實在Linux上不多程序須要獲取精確的atime時間,而且Linux核心開發人員從ext3/ext4文件系統的性能角度出發,決定在2.6.30版本的內容中修改atime的更新方式,只有在如下三種狀況之一纔會更新atime:


(1)若是將分區mount掛載的時候指定採用非relatime方式(默認採用 relatime方式),如 strictatime。補充:在OS啓動的時候,將各個分區掛載到不一樣的目錄,在掛載(mount)的參數中採用 strictatime,代表及時更新atime。在2.6.30以後mount添加了 relatime 和 strictatime 兩個選項,詳細的能夠經過 man mount 查看。


(2)atime 小於 ctime 或者 小於 mtime 的時候


(3)本次的 access time 和 上次的 access time 超過24個小時

相關文章
相關標籤/搜索