檢視檔案時間戳命令:stat awk.txt
file: `awk.txt'
size: 20 blocks: 8 io block: 4096 regular file
device: 801h/2049d inode: 380730 links: 1
access: (0644/-rw-r--r--) uid: ( 0/ root) gid: ( 0/ root)
access: 2008-04-26 01:50:44.000000000 +0800
modify: 2008-04-26 01:48:18.000000000 +0800
change: 2008-04-26 01:48:18.000000000 +0800
說明:access訪問時間。modify修改時間。change狀態改變時間。可以stat *檢視這個目錄所有檔案的狀態。
現在是要過濾出modify的時間戳,並以yyyymmddhhss格式儲存,則可以利用下面這條命令:
stat awk.txt | grep -i modify | awk -f. '' | awk ''| awk -f- '' | awk -f: ''
輸出結果:20080426014818
修改檔案時間與建立新檔案:touch
[root@linux ~]# ls -l /etc/man.config看到了嗎?在預設的情況下,ls顯示的是該檔案的mtime,也就是這個檔案的內容上次更改的時間。我的系統是在6/25安裝的,因此,這個檔案產生但狀態更改的時間就回溯到那個時間點。因為剛才的範例中使用到這個檔案,所以,它的atime就會變成剛剛使用的時間了。-rw-r--r-- 1 root root 4506 apr 8 19:11 /etc/man.config
[root@linux ~]# ls -l --time=atime /etc/man.config
-rw-r--r-- 1 root root 4506 jul 19 17:53 /etc/man.config
[root@linux ~]# ls -l --time=ctime /etc/man.config
-rw-r--r-- 1 root root 4506 jun 25 08:28 /etc/man.config
檔案的時間很重要,因為如果誤判檔案時間,可能會造成某些程式無法順利執行。那麼,萬一我發現了乙個檔案來自將來(很多時候會有這個問題的。我們在安裝的時候,提到的gmt時間就是那個意思),該如何讓該檔案的時間變成「現在」的時刻呢?很簡單,用touch命令即可。
[root@linux ~]# touch [-acdmt] 檔案通過touch命令,可以輕鬆地修改檔案的日期與時間。並且,也可以建立乙個空檔案。不過,要注意的是,即使複製乙個檔案,複製所有屬性,但也沒有辦法復 制ctime屬性。ctime可以記錄檔案最近改變狀態(status)的時間。無論如何,還是要說明一下,我們平時看的檔案屬性中,比較重要的還是 mtime。我們關心的常常是這個檔案的「內容」是什麼時候更改的。引數:-a : 僅修改access time。
-c : 僅修改時間,而不建立檔案。
-d : 後面可以接日期,也可以使用 --date="日期或時間"
-m : 僅修改mtime。
-t : 後面可以接時間,格式為 [yymmddhhmm]
範例:
範例一:新建乙個空的檔案。
[root@linux ~]# cd /tmp
[root@linux tmp]# touch testtouch
[root@linux tmp]# ls -l testtouch
-rw-r--r-- 1 root root 0 jul 19 20:49 testtouch
# 注意,這個檔案的大小是0。在預設的狀態下,如果touch後面接檔案,
# 則該檔案的3個時間(atime/ctime/mtime)都會更新為當前時間。若該檔案不存在,
# 則會主動建立乙個新的空檔案。例如上面這個例子。
範例二:將 ~/.bashrc複製成為bashrc,假設複製完全的屬性,檢查其日期。
[root@linux tmp]# cp ~/.bashrc bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 jul 4 11:45 bashrc <==這是mtime
-rwxr-xr-x 1 root root 395 jul 19 20:44 bashrc <==這是atime
-rwxr-xr-x 1 root root 395 jul 19 20:53 bashrc <==這是ctime
# 在這個案例中,我們使用了 ; 命令分隔符,它的用法我們會在bash shell中提到。
# 此外,ll是ls -l的命令別名,這個也會在bash shell中再次提及,
# 當前可以簡單地想成,ll就是ls -l的簡寫。至於 ; 則是同時發出兩個命令,
# 且讓兩個命令「按順序」執行的意思。上面的結果中可以看到,該檔案更改的日期
# jul 4 11:45,但是atime與ctime不一樣。
範例三:修改案例二的bashrc檔案,將日期調整為兩天前。
[root@linux tmp]# touch -d "2 days ago" bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 jul 19 21:02 bashrc
# 與上乙個範例比較,本來是19日的變成了17日了(atime/mtime)。
# 不過,ctime並沒有跟著改變。
範例四:將上個範例的bashrc日期改為2005/07/15 2:02。
[root@linux tmp]# touch -t 0507150202 bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 jul 15 02:02 bashrc
-rwxr-xr-x 1 root root 395 jul 15 02:02 bashrc
-rwxr-xr-x 1 root root 395 jul 19 21:05 bashrc
# 注意,日期在atime與mtime都改變了,但ctime則是記錄當前的時間。
touch這個命令最常用的情況是:
• 建立乙個空檔案。
• 將某個檔案日期修改為當前日期(mtime與atime)。
1、訪問時間,讀一次這個檔案的內容,這個時間就會更新。比如對這個檔案使用more命令。ls、stat命令都不會修改檔案的訪問時間。
2、修改時間,對檔案內容修改一次,這個時間就會更新。比如:vi後儲存檔案。ls -l列出的時間就是這個時間。
3、狀態改變時間。通過chmod命令更改一次檔案屬性,這個時間就會更新。檢視檔案的詳細的狀態、準確的修改時間等,可以通過stat命令 檔名。
linux 下檢視檔案修改時間 等
檢視檔案時間戳命令 stat awk.txt file awk.txt size 20 blocks 8 io block 4096 regular file device 801h 2049d inode 380730 links 1 access 0644 rw r r uid 0 root g...
Linux下修改時間
不知道是不是在裝系統的時候選的語言是英文,而時區選的是上海,系統時間和北京時間總是相差8小時,在網上找到了解決方法。一般使用 date s 命令來修改系統時間。比如將系統時間設定成1996年6月10日的命令如下。date s 06 10 96 將系統時間設定成下午1點12分0秒的命令如下。date ...
linux下修改時間
修改系統時間 date 顯示當前時間 fri aug 3 14 15 16 cst 2007 date s 按字串方式修改時間 可以只修改日期,不修改時間,輸入 date s 2007 08 03 只修改時間,輸入 date s 14 15 00 同時修改日期時間,注意要加雙引號,日期與時間之間有一...