1. 程式人生 > >linux 下查看文件的完整時間信息及三種時間屬性

linux 下查看文件的完整時間信息及三種時間屬性

hang nod conda strong 進程 腳本 acc modify 目錄

一、linux下查看文件的完整時間信息

1、Linux 下查看文件時,ls –l 缺省是不顯示秒的:
# ls -l /etc/
total 0
-rw-r--r--.  1 root   root         16 Jan  5 09:43 adjtime
-rw-r--r--.  1 root   root       1518 Jun  7  2013 aliases


2、要顯示秒(實際更精確),可以用 –full-time 參數:
# ls -l /etc/ --full-time
total 0
-rw-r--r--.  1 root   root         16 2018-01-05 09:43:59.352996227 +0800 adjtime
-rw-r--r--.  1 root   root       1518 2013-06-07 22:31:32.000000000 +0800 aliases


3、要顯示更多信息,用 stat 命令:

# stat /etc/adjtime 
  File: ‘/etc/adjtime’
  Size: 16              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 8483789     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:adjtime_t:s0
Access: 2018-01-05 09:48:18.965219287 +0800
Modify: 2018-01-05 09:43:59.352996227 +0800
Change: 2018-01-05 09:43:59.352996227 +0800
 Birth: -


二、linux文件的三種時間屬性

1、在Linux下,一個文件也有三種時間屬性:

訪問時間、修改時間、狀態改動時間。


在Linux下沒有創建時間的概念,也就是不能知道文件的建立時間,但

如果文件建立後就沒有修改過,修改時間=建立時間;

如果文件建立後,狀態就沒有改動過,那麽狀態改動時間=建立時間;

如果文件建立後,沒有被讀取過,那麽訪問時間=建立時間,因為不好判斷文件是否被改過、讀過、其狀態是否變過,所以判斷文件的建立時間基本上為不可能。


linux文件的三種時間屬性分別為:

atime,為access time(訪問時間)的縮寫,顯示的是文件中的數據最後被訪問的時間,讀一次這個文件的內容,這個時間就會更新,比如被系統的進程直接使用或者通過一些命令和腳本間接使用。(執行一些可執行文件、腳本)或對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間

mtime,為modify time(修改時間)的縮寫,顯示的是文件的內容被改變時的最後時間,比如用vi編輯時就會改變(也就是Block的內容),ls -l列出的時間就是這個時間。

ctime,為change time(狀態改動時間)的縮寫,顯示的是文件的權限,擁有者,所屬的組,鏈接數發生改變時的時間。當然當內容改變時,也會改變。(也就是Inode內容發生改變和Block內容發生改變時),通過chmod、chown命令修改一次文件屬性,這個時間就會更新。


2、查看文件這三種時間的命令有:

2.1、ls命令

ls -lc filename 列出文件的 ctime
ls -lu filename 列出文件的 atime
ls  -l  filename   列出文件的 mtime
字段           說明                                           例子                       ls(-l)
st_atime   文件數據的最後存取時間               read                       -u
st_mtime  文件數據的最後修改時間               write                       缺省
st_ctime   文件數據的最後更改時間               chown,chmod        -c


2.2、利用stat命令可以查看到文件的三種時間:
# stat anaconda-ks.cfg 
  File: ‘anaconda-ks.cfg’
  Size: 1862            Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 16797762    Links: 1
Access(權限): (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context(環境): system_u:object_r:admin_home_t:s0
Access(最近訪問): 2018-01-05 09:44:50.567995756 +0800
Modify(最近更改): 2018-01-05 09:44:50.569995756 +0800
Change(最近改動): 2018-01-05 09:44:50.569995756 +0800
 Birth(創建時間): -
 
說明:Access訪問時間。Modify修改時間。Change狀態改動時間。可以stat *查看這個文件/目錄所有文件的狀態。
因為anaconda-ks.cfg文件沒做過內容、屬性的更改,也沒讀過這個文件,所以三者(訪問時間、修改時間、狀態改動時間)的時間是一致的,這時文件的修改時間與這三個時間是一樣的,是沒有疑問的。


linux 下查看文件的完整時間信息及三種時間屬性