在 Linux 中,文件有訪問時間、數(shù)據(jù)修改時間、狀態(tài)修改時間這三個時間,而沒有創(chuàng)建時間。stat 是査看文件詳細(xì)信息的命令,而且可以看到文件的這三個時間,其基本信息如下。
命令名稱:stat。
英文原意:display file or file system status。
所在路徑:/usr/bin/stat。
執(zhí)行權(quán)限:所有用戶。
功能描述:顯示文件或文件系統(tǒng)的詳細(xì)信息。
命令格式
[root@localhost ~]# stat [選項(xiàng)]文件名或目錄名選項(xiàng):
-f:査看文件所在的文件系統(tǒng)信息,而不是査看文件的信息。
常見用法
【例 1】査看文件的詳細(xì)信息。
[root@localhost ~]# stat anaconda-ks.cfg
File: "anaconda-ks.cfg"
#文件名
Size: 1170 Blocks: 8 IO Block: 4096 普通文件#文件大小 占用的block數(shù) 塊大小 文件類型Device: 803h/2051d Inode: 130834 Links: 1#i節(jié)點(diǎn)號 鏈接數(shù)
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)#權(quán)限 所有者 所屬組
Access: 2016-05-06 23:31:41.396893415 +0800#訪問時間
Modify: 2016-05-06 23:31:41.396893415 +0800#數(shù)據(jù)修改時間
Change: 2016-05-06 23:31:41.411006937 +0800#狀態(tài)修改時間
【例 2】 査看文件系統(tǒng)信息。
如果使用"-f"選項(xiàng),就不再是査看指定文件的信息,而是査看這個文件所在文件系統(tǒng)的信息,例如:
[root@localhost ~]#stat -f anaconda-ks.cfgFile: "anaconda-ks.cfg"
ID: c05ad05e0e3b0580 Namelen: 255 Type: ext2/ext3Block size: 4096 Fundamental block size: 4096Blocks: Total: 5045314 Free: 4356956 Available: 4100662 Inodes: Total: 1283632 Free: 1192731【例 3】三種時間的含義。
査看系統(tǒng)當(dāng)前時間,如下:
[root@localhost ~]# date
2016年05月07日星期六01:40:49 CST
再査看 bds 文件的三種時間,可以看到,和當(dāng)前時間是有差別的,如下:
[root@localhost ~]# stat bols
File: "bols"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件Device: 803h/2051d Inode: 130829 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-05-07 00:10:23.794319970 +0800Modify: 2016-05-07 00:10:23.794319970 +0800Change: 2016-05-07 00:10:23.794319970 +0800#這些時間都是最后一次修改文件的時間,并不是當(dāng)前時間而如果用 cat 命令讀取一下這個文件,就會發(fā)現(xiàn)文件的訪問時間 (Access Time) 變成了 cat 命令的執(zhí)行時間,如下:
[root@localhost ~]# cat bols
[root@localhost ~]# stat bols
File: "bols"
Size: 0 Blocks: 0 I0 Block: 4096 普通空文Device: 803h/2051d Inode: 130829 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid:(0/ root)Access: 2016-05-07 01:41:08.202924900 +0800#只有訪問時間變?yōu)榱薱at命令的執(zhí)行時間,其他兩個時間沒有改Modify: 2016-05-07 00:10:23.794319970 +0800Change: 2016-05-07 00:10:23.794319970 +0800而如果用 echo 命令向文件中寫入點(diǎn)數(shù)據(jù),那么文件的數(shù)據(jù)修改時間(Modify Time)就會發(fā)生改變。但是文件數(shù)據(jù)改變了,系統(tǒng)會認(rèn)為文件的狀態(tài)也會改變,所以狀態(tài)修改時間(Change Time)也會隨之改變,如下:
[root@localhost ~]# echo 9527> bols
[root@localhost ~]# stat bols
File: "bols"
Size: 6 Blocks: 8 I0 Block: 4096 普通文件Device: 803h/2051d Inode: 130829 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-05-07 01:41:08.202924900 +0800#這個時間還是上次修改時間
Modify: 2016-05-07 01:42:42.459614017 +0800Change: 2016-05-07 01:42:42.459614017 +0800 #而這兩個時間變?yōu)榱?echo 命令的執(zhí)行時間而如果只修改文件的狀態(tài)(比如改變文件的所有者),而不修改文件的數(shù)據(jù),則只會更改狀態(tài)修改時間(ChangeTime),如下:
[root@localhost ~]# chown nobody bols
[root@localhost ~]# stat bols
File: "bols"
Size: 6 Blocks: 8 10 Block: 4096 普通文件Device: 803h/2051d Inode: 130829 Links: 1Access: (0644/-rw-r-r-) Uid: ( 502/ nobody) Gid: ( 0/root)Access: 2016-05-07 01:41:08.202924900 +0800Modify: 2016-05-07 01:42:42.459614017 +0800# 前兩個時間還是之前修改的時間
Change: 2016-05-07 01:43:09.676860399 +0800#而狀態(tài)修改時間變?yōu)榱薱hown命令的執(zhí)行時間
而如果用 touch 命令再次觸摸這個文件,則這個文件的三個時間 都會改變。touch 命令的作用就是這樣的,大家記住即可。如下:
[root@localhost ~]# touch bols
[root@localhost ~]# stat bols
File: "bols"
Size: 6 Blocks: 8 10 Block: 4096 普通文件Device: 803h/2051d Inode: 130829 Links: 1Access: (0644/-rw-r--r--) Uid: ( 502/ nobody) Gid: ( 0/root)Access: 2016-05-07 01:54:14.466809236 +0800Modify: 2016-05-07 01:54:14.466809236 +0800Change: 2016-05-07 01:54:14.466809236 +0800#三個時間都會變?yōu)閠ouch命令的執(zhí)行時間