linux stat 命令查看文件信息


在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。也就是說不能知道文件的創建時間。但如果文件創建后就沒有修改過,修改時間=創建時間;如果文件創建后,狀態就沒有改變過,那么狀態改變時間=創建時間;如果文件創建后,沒有被讀取過,那么訪問時間=創建時間,這個基本不太可能。

  與文件相關的幾個時間:

  1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件使用more命令。ls、stat命令都不會修改文件的訪問時間。

  2、修改時間,對文件內容修改一次,這個時間就會更新。比如:vi后保存文件。ls -l列出的時間就是這個時間。

  3、狀態改變時間。通過chmod命令更改一次文件屬性,這個時間就會更新。查看文件的詳細的狀態、准確的修改時間等,可以通過stat命令文件名。

  比如: [jing@zhjh c]$ stat temp.c

  引用:

  File: 'temp.c'

  Size: 66 Blocks: 8 IO Block: 4096 \u4e00\u822c\u6587\u4ef6

  Device: 807h/2055d Inode: 1191481 Links: 1

  Access: (0664/-rw-rw-r--) Uid: ( 500/ jing) Gid: ( 500/ jing)

  Access: 2008-03-12 20:19:45.000000000 0800

  Modify: 2008-03-12 20:19:45.000000000 0800

  Change: 2008-03-12 20:19:45.000000000 0800

  說明:Access訪問時間。Modify修改時間。Change狀態改變時間。可以stat *查看這個目錄所有文件的狀態

 

 

在windows下,一個文件有:創建時間、修改時間、訪問時間。 而 在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態改動時間
兩者有此不同, 在Linux下沒有創建時間的概念,也就是不能知道文件的建立時間,但如果文件建立后就沒有修改過,修改時間=建立時間;如果文件建立后,狀態就沒有改動過,那么狀態改動時間=建立時間;如果文件建立后,沒有被讀取過,那么訪問時間=建立時間,因為不好判斷文件是否被改過、讀過、其狀態是否變過,所以判斷文件的建立時間基本上能為不可能。
 
如何查一個文件的三個時間呢?
先用下面的命令來建立一個文件 # date && echo "this is file be used test time of file" >filetime.txt && ll --full-time filetime.txt Tue Aug  4 15:13:44 HKT 2009 -rw-r--r--    1 root     root           39 2009-08-04 15:13:44.000000000 +0800 filetime.txt
 
通過stat filename.txt來查,如: # stat filetime.txt    File: `filetime.txt'   Size: 39              Blocks: 8          IO Block: 4096   Regular File Device: 802h/2050d      Inode: 17          Links: 1     Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root) Access: 2009-08-04 15:13:44.000000000 +0800 Modify: 2009-08-04 15:13:44.000000000 +0800 Change: 2009-08-04 15:13:44.000000000 +0800
說明:Access訪問時間。Modify修改時間。Change狀態改動時間。可以stat *查看這個目錄所有文件的狀態。
ctime=change time atime=access time mtime=modifiy time
 
因為這是一個新的文件(filetime.txt),沒做過內容、屬性的更改,也沒讀過這個文件,所以三者(訪問時間、修改時間、狀態改動時間)的時間是一致的,這時文件的修改時間與這三個時間是一樣的,是沒有疑問的。
 
1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間。 2、修改時間,修改時間是文件內容最后一次被修改時間。比如:vi后保存文件。ls -l列出的時間就是這個時間。 3、狀態改動時間。是該文件的i節點最后一次被修改的時間,通過chmod、chown命令修改一次文件屬性,這個時間就會更新。
 
另個除了可以通過stat來查看文件的mtime,ctime,atime等屬性,也可以通過ls命令來查看,具體如下:
ls -lc filename 列出文件的 ctime (最后更改時間)
ls -lu filename 列出文件的 atime(最后存取時間)
ls -l filename 列出文件的 mtime (最后修改時間)
 
在linux中stat函數中,用st_atime表示文件數據最近的存取時間(last accessed time);用st_mtime表示文件數據最近的修改時間(last modified time);使用st_ctime表示文件i節點數據最近的修改時間(last i-node's status changed time)。
 
 字段           說明                  例子           ls(-l)  st_atime  文件數據的最后存取時間       read            -u  st_mtime  文件數據的最后修改時間       write           缺省  st_ctime  文件數據的最后更改時間       chown,chmod     -c
 
 
在linux系統中,系統把文件內容數據與i節點數據是分別存放的,i節點數據存放了文件權限與文件屬主之類的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM