在windows下,一個文件有:創建時間、修改時間、訪問時間。
而在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態改動時間。
1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件使用more命令。ls、stat命令都不會修改文件的訪問時間。
2、修改時間,對文件內容修改一次,這個時間就會更新。比如:vi後保存文件。ls -l列出的時間就是這個時間。
3、狀態改變時間。通過chmod命令更改一次文件屬性,這個時間就會更新。查看文件的詳細的狀態、准確的修改時間等,可以通過stat命令 文件名。
通過stat filename.txt來查,如:
# stat filetime.txt
File: `filetime.txt'
Size: 39 Blocks: 8 IO Block: 4096 Regular File
Device: 802h/2050d Inode: 17 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 15:13:44.000000000 +0800
Modify: 2009-08-04 15:13:44.000000000 +0800
Change: 2009-08-04 15:13:44.000000000 +0800
說明:Access訪問時間。Modify修改時間。Change狀態改動時間。可以stat *查看這個目錄所有文件的狀態。
ctime=change time
atime=access time
mtime=modifiy time
因為這是一個新的文件(filetime.txt),沒做過內容、屬性的更改,也沒讀過這個文件,所以三者(訪問時間、修改時間、狀態改動時間)的時間是一致的,這時文件的修改時間與這三個時間是一樣的,是沒有疑問的。
1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間。
2、修改時間,修改時間是文件內容最後一次被修改時間。比如:vi後保存文件。ls -l列出的時間就是這個時間。
3、狀態改動時間。是該文件的i節點最後一次被修改的時間,通過chmod、chown命令修改一次文件屬性,這個時間就會更新。
另個除了可以通過stat來查看文件的mtime,ctime,atime等屬性,也可以通過ls命令來查看,具體如下:
ls -lc filename 列出文件的 ctime (最後更改時間)
ls -lu filename 列出文件的 atime(最後存取時間)
ls -l filename 列出文件的 mtime (最後修改時間)
字段 說明 例子 ls(-l)
st_atime 文件數據的最後存取時間 read -u
st_mtime 文件數據的最後修改時間 write 缺省
st_ctime 文件數據的最後更改時間 chown,chmod -c
在linux系統中,系統把文件內容數據與i節點數據是分別存放的,i節點數據存放了文件權限與文件屬主之類的數據。
可以使用touch命令來改變文件的時間
無法修改文件的change時間
touch命令選項說明
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與 --file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與 date 指令相同。 等於參數 a m
[[CC]YY]MMDDhhmm[.SS],
CC為年數中的前兩位,即”世紀數”;
YY為年數的後兩位,即某世紀中的年數.如果不給出CC的值,則linux中touch命令參數將把年數CCYY限定在1969--2068之內.
MM為月數,
DD為天數,
hh 為小時數(幾點),
mm為分鐘數,
SS為秒數.
此處秒的設定范圍是0--61,這樣可以處理閏秒.這些數字組成的時間是環境變量TZ指定的時區中的一個時間.由於系統的限制,早於1970年1月1日的時間是錯誤的.
--no-create 不會建立新檔案。 --help 列出指令格式。 --version 列出版本訊息。
例一:更新file1.txt的存取和修改時間。 touch file1.txt
例二:如果file1.txt不存在,不創建文件 touch -c file1.txt
例三:更新file1.txt的時間戳和ref+file相同 touch -r ref+file file1.txt
例四:設置文件的時間戳為2011年5月18日9點45分10秒 ls -l file1.txt
touch -t 1105190945.10 file1.txt
http://xxxxxx/Linuxjc/1172790.html TechArticle