Linux文件有3個(gè)修改時(shí)間,很多朋友都喜歡弄混淆,也包括我在內(nèi),現(xiàn)在列出來(lái)供參考。 1)modification time (mtime,修改時(shí)間):這個(gè)時(shí)間指的是文件內(nèi)容修改的時(shí)間,而不是文件屬性的修改,當(dāng)數(shù)據(jù)內(nèi)容修改時(shí),這個(gè)時(shí)間就會(huì)改變,用命令ls -l默認(rèn)顯示的就是這個(gè)時(shí)間: 2)status time (ctime,狀態(tài)時(shí)間):當(dāng)一個(gè)文件的狀態(tài)改變時(shí),這個(gè)時(shí)間就會(huì)改變,例如更改了文件的權(quán)限與屬性等,它就會(huì)改變。 3)access time (atime,訪問時(shí)間):當(dāng)讀取文件內(nèi)容時(shí),就會(huì)更改這個(gè)時(shí)間,例如使用cat 去讀取/etc/man.config,那么該文件的atime就會(huì)改變。 例如: # ls -l --full-time /etc/man.config mtime -rw-r--r-- 1 root root 4522 2007-11-17 18:47:54.000000000 +0800 /etc/man.config # ls -l --time=atime --full-time /etc/man.config -rw-r--r-- 1 root root 4522 2010-03-15 14:20:20.000000000 +0800 /etc/man.config # ls -l --time=ctime --full-time /etc/man.config -rw-r--r-- 1 root root 4522 2008-07-11 16:21:55.000000000 +0800 /etc/man.config ----------------------------------------------------------------------------------- #cat /etc/man.config執(zhí)行之后再查看atime,該時(shí)間已經(jīng)更改 # ls -l --time=atime --full-time /etc/man.config -rw-r--r-- 1 root root 4522 2010-03-15 14:24:30.000000000 +0800 /etc/man.config 更改文件權(quán)限:# chmod o-r /etc/man.config 查看ctime,已經(jīng)更改。 # ls -l --time=ctime --full-time /etc/man.config -rw-r----- 1 root root 4522 2010-03-15 14:28:34.000000000 +0800 /etc/man.config 如果對(duì)文件內(nèi)容進(jìn)行編輯,那么mtime就會(huì)改變了。 如果要一起查看文件的三個(gè)時(shí)間情況,可以用命令stat進(jìn)行查看 # stat /etc/man.config File: `/etc/man.config' Size: 4522 Blocks: 24 IO Block: 4096 regular file Device: 807h/2055d Inode: 1049307 Links: 1 Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2010-03-15 14:24:30.000000000 +0800 Modify: 2007-11-17 18:47:54.000000000 +0800 Change: 2010-03-15 14:28:34.000000000 +0800 時(shí)間與上面的時(shí)間完全吻合。 文件的時(shí)間很重要,因?yàn)槿绻`判文件時(shí)間,可能會(huì)造成某些程序無(wú)法正常運(yùn)行,萬(wàn)一我們發(fā)現(xiàn)一個(gè)文件的時(shí)間是未來(lái)的時(shí)間(很多時(shí)候會(huì)有這個(gè)問題,我們?cè)诎惭b的時(shí)候提到的GMT時(shí)間就是那個(gè)意思),那么怎樣才能讓次時(shí)間變成現(xiàn)在的時(shí)間呢?我們只需要一個(gè)touch命令即可。 touch的用法為: touch [-actmd] 文件 參數(shù): -a:僅修改access time -c:僅修改時(shí)間而不建立文件 -t:后面可以接時(shí)間,格式為:[YYMMDDhhmm] -m:僅修改mtime -d:后面可以接日期,也可以使用--date="日期或時(shí)間" 例如:將man.config的日期調(diào)整為兩天前,則: #touch -d "2 days ago" /etc/man.config 結(jié)果atime和mtime將會(huì)改變而ctime不會(huì)改變。 通過touch命令,可以輕松的修改文件文件的日期與時(shí)間,并且也可以建立一個(gè)空文件,不過要注意的是,即使復(fù)制一個(gè)文件并復(fù)制所有屬性頁(yè)沒有辦法復(fù)制ctime屬性。 touch命令常用的情況是 1)建立一個(gè)空文件 2)將某個(gè)文件日期修改為當(dāng)前日期(mtime和atime) |
|
來(lái)自: ldjsld > 《電腦手機(jī)及電子技術(shù)》