天天看點

linux 下檢視檔案的完整時間資訊及三種時間屬性

一、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,如需轉載請自行聯系原作者

繼續閱讀