linux stat命令、inode內容--ctime,mtime,atime的區別
阿新 • • 發佈:2019-01-02
1、[[email protected] tmp]# stat 1.txt
File: `1.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 196617 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-10-20 21:43:54.000000000 +0800
Modify: 2013-10-20 21:35:42.000000000 +0800
Change: 2013-10-20 21:35:42.000000000 +0800
2、stat顯示出inode的內容--inode包含檔案的元資訊,具體來說有以下內容:
* 檔案的位元組數
* 檔案擁有者的User ID
* 檔案的Group ID
* 檔案的讀、寫、執行許可權
* 檔案的時間戳,共有三個
* 連結數,即有多少檔名指向這個inode
* 檔案資料block的位置
3、IO Block:邏輯塊的大小為4096個位元組
Blocks:物理最小塊是512,而IO Block為4096,所以這裡就佔用了8個物理塊的意思
Access:atime
Modify:mtime,修改時間,注意這個不是建立時間,m不是make的意思
Change:ctime,改變時間
4、通過ls怎麼查詢這三個時間?
ls -lc filename 列出檔案的 ctime
ls -lu filename 列出檔案的 atime
ls -l filename 列出檔案的 mtime --ll預設顯示的就是這個時間
5、這三個時間不好區別,但必須區別好,因為很多應用會考慮到這些時間,比如在做同步備份時,會判斷時間,大於上次備份時間的檔案要再次同步等,或在查詢檔案何時變化,何時被黑客入侵,都會用到這個。
atime:訪問時間,讀取檔案或者執行檔案時會更改,命令如cat,vi
mtime:修改時間,檔案的內容被改變時,就會更改,如vi
ctime:改變時間,檔案的標籤如屬性、使用者、使用者組、許可權、內容等被改變時,就會更改,如chmod,chown,vi
6、檔案的時間戳(timestamp)是inode的內容之一,從inode來理解:ctime指inode上一次改變的時間,mtime指檔案內容上一次修改的時間,atime指檔案上一次開啟的時間。
7、atime不一定在訪問檔案之後被修改,因為:使用ext3檔案系統的時候,如果在mount的時候使用了noatime引數那麼就不會更新atime的資訊,就是不想filesystem做太多的修改,而改善讀取效能。
File: `1.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 196617 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-10-20 21:43:54.000000000 +0800
Modify: 2013-10-20 21:35:42.000000000 +0800
Change: 2013-10-20 21:35:42.000000000 +0800
2、stat顯示出inode的內容--inode包含檔案的元資訊,具體來說有以下內容:
* 檔案的位元組數
* 檔案擁有者的User ID
* 檔案的Group ID
* 檔案的讀、寫、執行許可權
* 檔案的時間戳,共有三個
* 連結數,即有多少檔名指向這個inode
* 檔案資料block的位置
3、IO Block:邏輯塊的大小為4096個位元組
Blocks:物理最小塊是512,而IO Block為4096,所以這裡就佔用了8個物理塊的意思
Access:atime
Modify:mtime,修改時間,注意這個不是建立時間,m不是make的意思
Change:ctime,改變時間
4、通過ls怎麼查詢這三個時間?
ls -lc filename 列出檔案的 ctime
ls -lu filename 列出檔案的 atime
ls -l filename 列出檔案的 mtime --ll預設顯示的就是這個時間
5、這三個時間不好區別,但必須區別好,因為很多應用會考慮到這些時間,比如在做同步備份時,會判斷時間,大於上次備份時間的檔案要再次同步等,或在查詢檔案何時變化,何時被黑客入侵,都會用到這個。
atime:訪問時間,讀取檔案或者執行檔案時會更改,命令如cat,vi
mtime:修改時間,檔案的內容被改變時,就會更改,如vi
ctime:改變時間,檔案的標籤如屬性、使用者、使用者組、許可權、內容等被改變時,就會更改,如chmod,chown,vi
6、檔案的時間戳(timestamp)是inode的內容之一,從inode來理解:ctime指inode上一次改變的時間,mtime指檔案內容上一次修改的時間,atime指檔案上一次開啟的時間。
7、atime不一定在訪問檔案之後被修改,因為:使用ext3檔案系統的時候,如果在mount的時候使用了noatime引數那麼就不會更新atime的資訊,就是不想filesystem做太多的修改,而改善讀取效能。