一、查看文件時(shí)間及相關(guān)命令
1杈抢、stat查看文件時(shí)間
[root@web10 ~]# stat install.log
File: “install.log”
Size: 33386 Blocks: 80 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 7692962 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-13 16:02:34.000000000 +0800
Modify: 2011-11-29 16:03:06.000000000 +0800
Change: 2011-11-29 16:03:08.000000000 +0800
說明:Access訪問時(shí)間。Modify修改時(shí)間。Change狀態(tài)改變時(shí)間≌虿荩可以stat *查看這個(gè)目錄所有文件的狀態(tài)。
而我們想要查看某文件的三個(gè)時(shí)間中的具體某個(gè)時(shí)間瘤旨,并以年月日時(shí)分秒的格式保存梯啤。我們可以使用下面的命令:
[root@web10 ~]# stat install.log|grep -i Modify | awk -F. '{print $1}' | awk '{print $2$3}'| awk -F- '{print $1$2$3}' | awk -F: '{print $1$2$3}'
20111129160306
2、ls查看文件時(shí)間
相應(yīng)的通過ls
查看時(shí)也有三個(gè)時(shí)間:
?
modification time
(mtime存哲,修改時(shí)間):當(dāng)該文件的“內(nèi)容數(shù)據(jù)”更改時(shí)因宇,就會(huì)更新這個(gè)時(shí)間。內(nèi)容數(shù)據(jù)指的是文件的內(nèi)容祟偷,而不是文件的屬性察滑。
?status time
(ctime,狀態(tài)時(shí)間):當(dāng)該文件的”狀態(tài)(status)”改變時(shí)修肠,就會(huì)更新這個(gè)時(shí)間贺辰,舉例來說,更改了權(quán)限與屬性嵌施,就會(huì)更新這個(gè)時(shí)間魂爪。
?access time
(atime,存取時(shí)間):當(dāng)“取用文件內(nèi)容”時(shí)艰管,就會(huì)更新這個(gè)讀取時(shí)間滓侍。舉例來說,使用cat去讀取 ~/.bashrc牲芋,就會(huì)更新atime了撩笆。
[root@web10 ~]# ls -l --time=ctime install.log
-rw-r--r-- 1 root root 33386 2011-11-29 install.log
[root@web10 ~]# ls -l --time=atime install.log
-rw-r--r-- 1 root root 33386 07-13 16:02 install.log
注意:ls參數(shù)里沒有--mtime這個(gè)參數(shù),因?yàn)槲覀兡J(rèn)通過ls -l查看到的時(shí)間就是mtime 缸浦。
二夕冲、修改文件時(shí)間
創(chuàng)建文件我們可以通過touch來創(chuàng)建。同樣裂逐,我們也可以使用touch來修改文件時(shí)間歹鱼。touch的相關(guān)參數(shù)如下:
-a : 僅修改access time。
-c : 僅修改時(shí)間卜高,而不建立文件弥姻。
-d : 后面可以接日期,也可以使用 --date="日期或時(shí)間"
-m : 僅修改mtime掺涛。
-t : 后面可以接時(shí)間庭敦,格式為 [YYMMDDhhmm]
注:如果touch后面接一個(gè)已經(jīng)存在的文件,則該文件的3個(gè)時(shí)間(atime/ctime/mtime)都會(huì)更新為當(dāng)前時(shí)間薪缆。若該文件不存在秧廉,則會(huì)主動(dòng)建立一個(gè)新的空文件。
[root@web10 ~]# touch install.log
[root@web10 ~]# stat install.log
File: “install.log”
Size: 33386 Blocks: 80 IO Block: 4096 一般文件
Device: fd00h/64768d Inode: 7692962 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-13 16:21:50.000000000 +0800
Modify: 2012-07-13 16:21:50.000000000 +0800
Change: 2012-07-13 16:21:50.000000000 +0800
同樣,使用ls 疼电,查看到的結(jié)果也一樣嚼锄。
[root@web10 ~]# ls -l --time=ctime install.log
-rw-r--r-- 1 root root 33386 07-13 16:21 install.log
[root@web10 ~]# ls -l --time=atime install.log
-rw-r--r-- 1 root root 33386 07-13 16:21 install.log
[root@web10 ~]# ls -l install.log
-rw-r--r-- 1 root root 33386 07-13 16:21 install.log
下面再看一個(gè)和touch不相關(guān)的例子:
[root@web10 ~]# cp /etc/profile .;ll --time=atime profile ;ll --time=ctime profile
cp:是否覆蓋“./profile”? y
-rw-r--r-- 1 root root 1344 07-13 16:24 profile
-rw-r--r-- 1 root root 1344 07-13 16:25 profile
因?yàn)槲抑斑\(yùn)行過這個(gè)命令一次,所以會(huì)出現(xiàn)覆蓋蔽豺,不過這個(gè)覆蓋出的好区丑,剛才讓我們看到了atime和ctime的時(shí)間的差別。
我們?cè)倩氐絫ouch利用touch修改文件時(shí)間:
- 同時(shí)修改文件的修改時(shí)間和訪問時(shí)間
touch -d "2010-05-31 08:10:30" install.log
- 只修改文件的修改時(shí)間
touch -m -d "2010-05-31 08:10:30" install.log
- 只修改文件的訪問時(shí)間
touch -a -d "2010-05-31 08:10:30" install.log
下面再給一個(gè)rootkit木馬常用的伎倆茫虽。就是把后一個(gè)文件的時(shí)間修改成和前一個(gè)相同。
touch -acmr /bin/ls /etc/sh.conf
另外touch還支持像date命令一樣參數(shù)修改文件時(shí)間:
[root@web10 ~]# touch -d "2 days ago" install.log ; ll install.log
-rw-r--r-- 1 root root 33386 07-11 16:35 install.log
最后總結(jié)下常用的文件操作與時(shí)間的關(guān)系:
1既们、訪問時(shí)間濒析,讀一次這個(gè)文件的內(nèi)容,這個(gè)時(shí)間就會(huì)更新啥纸。比如對(duì)這個(gè)文件使用more命令号杏。ls、stat命令都不會(huì)修改文件的訪問時(shí)間斯棒。
2盾致、修改時(shí)間,對(duì)文件內(nèi)容修改一次荣暮,這個(gè)時(shí)間就會(huì)更新庭惜。比如:vim
后保存文件。ls -l列出的時(shí)間就是這個(gè)時(shí)間穗酥。
3护赊、狀態(tài)改變時(shí)間。通過chmod
命令更改一次文件屬性砾跃,這個(gè)時(shí)間就會(huì)更新骏啰。查看文件的詳細(xì)的狀態(tài)、準(zhǔn)確的修改時(shí)間等抽高,可以通過stat命令 文件名判耕。