【stat命令】檢視檔案資訊
阿新 • • 發佈:2019-02-11
在windows下,一個檔案有:建立時間、修改時間、訪問時間。
而在Linux下,一個檔案也有三種時間,分別是:訪問時間、修改時間、狀態改動時間。
在Linux中,沒有檔案建立時間的概念。只有檔案的訪問時間、修改時間、狀態改變時間。也就是說不能知道檔案的建立時間。但如果檔案建立後就沒有修改過,修改時間=建立時間;如果檔案建立後,狀態就沒有改變過,那麼狀態改變時間=建立時間;如果檔案建立後,沒有被讀取過,那麼訪問時間=建立時間,這個基本不太可能。
與檔案相關的幾個時間:
1、訪問時間,讀一次這個檔案的內容,這個時間就會更新。比如對這個檔案運用 more、cat等命令。ls、stat命令都不會修改檔案的訪問時間。
2、修改時間,是檔案內容最後一次被修改時間。這個時間就會更新。比如:vi後儲存檔案。ls -l列出的時間就是這個時間。
3、狀態改動時間。通過chmod、chown命令修改一次檔案屬性(是該檔案的i節點最後一次被修改的時間),這個時間就會更新。
檢視檔案的詳細的狀態、準確的修改時間等,可以通過stat命令檔名。
舉例說明:
# stat out.txt
File: "out.txt"
Size: 2918 Blocks: 8 IO Block: 4096 普通檔案
Device: 803h/2051d Inode: 3022338 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-07-18 03:29:28.000000000 +0800
Modify: 2017-07-18 03:28:54.000000000 +0800
Change: 2017-07-18 03:28:54.000000000 +0800
說明:Access訪問時間。Modify修改時間。Change狀態改變時間。 ctime=change time atime=access time mtime=modifiy time 可以stat *檢視這個目錄所有檔案的狀態 除了可以通過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節點資料存放了檔案許可權與檔案屬主之類的資料。
File: "out.txt"
Size: 2918 Blocks: 8 IO Block: 4096 普通檔案
Device: 803h/2051d Inode: 3022338 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-07-18 03:29:28.000000000 +0800
Modify: 2017-07-18 03:28:54.000000000 +0800
Change: 2017-07-18 03:28:54.000000000 +0800
說明:Access訪問時間。Modify修改時間。Change狀態改變時間。 ctime=change time atime=access time mtime=modifiy time 可以stat *檢視這個目錄所有檔案的狀態 除了可以通過stat來檢視檔案的mtime,ctime,atime等屬性,也可以通過ls命令來檢視,具體如下: ls -lc filename 列出檔案的 ctime (最後更改時間) ls -lu filename 列出檔案的 atime(最後存取時間) ls -l filename 列出檔案的 mtime (最後修改時間)