一、linux下檢視檔案的完整時間資訊
1、Linux 下檢視檔案時,ls –l 預設是不顯示秒的:
<code># ls -l /etc/</code>
<code>total 0</code>
<code>-rw-r--r--. 1 root root 16 Jan 5 09:43 adjtime</code>
<code>-rw-r--r--. 1 root root 1518 Jun 7 2013 aliases</code>
2、要顯示秒(實際更精确),可以用 –full-time 參數:
<code># ls -l /etc/ --full-time</code>
<code>-rw-r--r--. 1 root root 16 2018-01-05 09:43:59.352996227 +0800 adjtime</code>
<code>-rw-r--r--. 1 root root 1518 2013-06-07 22:31:32.000000000 +0800 aliases</code>
3、要顯示更多資訊,用 stat 指令:
<code># stat /etc/adjtime </code>
<code> </code><code>File: ‘</code><code>/etc/adjtime</code><code>’</code>
<code> </code><code>Size: 16 Blocks: 8 IO Block: 4096 regular </code><code>file</code>
<code>Device: fd00h</code><code>/64768d</code> <code>Inode: 8483789 Links: 1</code>
<code>Access: (0644</code><code>/-rw-r--r--</code><code>) Uid: ( 0/ root) Gid: ( 0/ root)</code>
<code>Context: system_u:object_r:adjtime_t:s0</code>
<code>Access: 2018-01-05 09:48:18.965219287 +0800</code>
<code>Modify: 2018-01-05 09:43:59.352996227 +0800</code>
<code>Change: 2018-01-05 09:43:59.352996227 +0800</code>
<code> </code><code>Birth: -</code>
二、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指令
<code>ls -lc filename 列出檔案的 ctime</code>
<code>ls -lu filename 列出檔案的 atime</code>
<code>ls -l filename 列出檔案的 mtime</code>
<code>字段 說明 例子 ls(-l)</code>
<code>st_atime 檔案資料的最後存取時間 read -u</code>
<code>st_mtime 檔案資料的最後修改時間 write 預設</code>
<code>st_ctime 檔案資料的最後更改時間 chown,chmod -c</code>
2.2、利用stat指令可以檢視到檔案的三種時間:
<code># stat anaconda-ks.cfg </code>
<code> </code><code>File: ‘anaconda-ks.cfg’</code>
<code> </code><code>Size: 1862 Blocks: 8 IO Block: 4096 regular </code><code>file</code>
<code>Device: fd00h</code><code>/64768d</code> <code>Inode: 16797762 Links: 1</code>
<code>Access(權限): (0600</code><code>/-rw-------</code><code>) Uid: ( 0/ root) Gid: ( 0/ root)</code>
<code>Context(環境): system_u:object_r:admin_home_t:s0</code>
<code>Access(最近通路): 2018-01-05 09:44:50.567995756 +0800</code>
<code>Modify(最近更改): 2018-01-05 09:44:50.569995756 +0800</code>
<code>Change(最近改動): 2018-01-05 09:44:50.569995756 +0800</code>
<code> </code><code>Birth(建立時間): -</code>
<code> </code>
<code>說明:Access通路時間。Modify修改時間。Change狀态改動時間。可以stat *檢視這個檔案/目錄所有檔案的狀态。</code>
<code>因為anaconda-ks.cfg檔案沒做過内容、屬性的更改,也沒讀過這個檔案,是以三者(通路時間、修改時間、狀态改動時間)的時間是一緻的,這時檔案的修改時間與這三個時間是一樣的,是沒有疑問的。</code>
本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/2062700,如需轉載請自行聯系原作者