Linux的文件時間

在windows下,一個文件有:建立時間、修改時間、訪問時間。
而在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態改動時間。node

一、訪問時間,讀一次這個文件的內容,這個時間就會更新。好比對這個文件使用more命令。ls、stat命令都不會修改文件的訪問時間。linux

二、修改時間,對文件內容修改一次,這個時間就會更新。好比:vi後保存文件。ls -l列出的時間就是這個時間。windows

三、狀態改變時間。經過chmod命令更改一次文件屬性,這個時間就會更新。查看文件的詳細的狀態、準確的修改時間等,能夠經過stat命令 文件名。unix

 

 

經過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 timeit

由於這是一個新的文件(filetime.txt),沒作過內容、屬性的更改,也沒讀過這個文件,因此三者(訪問時間、修改時間、狀態改動時間)的時間是一致的,這時文件的修改時間與這三個時間是同樣的,是沒有疑問的。io

一、訪問時間,讀一次這個文件的內容,這個時間就會更新。好比對這個文件運用 more、cat等命令。ls、stat命令都不會修改文件的訪問時間。
二、修改時間,修改時間是文件內容最後一次被修改時間。好比:vi後保存文件。ls -l列出的時間就是這個時間。
三、狀態改動時間。是該文件的i節點最後一次被修改的時間,經過chmod、chown命令修改一次文件屬性,這個時間就會更新。變量

另個除了能夠經過stat來查看文件的mtime,ctime,atime等屬性,也能夠經過ls命令來查看,具體以下:
ls -lc filename 列出文件的 ctime (最後更改時間)
ls -lu filename 列出文件的 atime(最後存取時間)
ls -l filename 列出文件的 mtime (最後修改時間)date

字段           說明                   例子           ls(-l)
st_atime  文件數據的最後存取時間       read            -u
st_mtime  文件數據的最後修改時間       write           缺省
st_ctime  文件數據的最後更改時間       chown,chmod     -c
在linux系統中,系統把文件內容數據與i節點數據是分別存放的,i節點數據存放了文件權限與文件屬主之類的數據。
file

 

可使用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

相關文章
相關標籤/搜索