在linux中,每個檔案都關聯乙個時間戳,並且每個檔案都會儲存最近一次訪問的時間、最近一次修改的時間和最近一次變更的時間等資訊。所以,無論何時我們建立乙個新檔案,訪問或修改乙個已存在的檔案,檔案的時間戳都會自動地更新。
touch
- 修改檔案的時間戳記.
touch命令就可用於建立、變更和修改檔案的時間戳。
總覽 touch
[-acm][-r
ref_
file
(參照檔案)|-t
time
(時間值)]
file(檔名)...
gnu版本:
touch
[-acfm]
[-r
file(參照檔案)]
[-t
decimtime(時間值)]
[-d
time(時間值)]
[--time=]
[--date
=time]
[--refere
nce=file]
[--no-create]
[--help]
[--version]
[--]
file(檔案)...
用法描述
touch
修改每個指定檔案
file
的訪問(access)和/或修改(modifi
cation)時間戳記.除非使用-r或-t選項,這些時間戳記都將修改為當前的時間.使用-r選項時,這些戳記將按照檔案
ref_file
的時間戳記來修改(即變得和ref_file時間戳記值相同).使用-t選項,則這些戳記將按照給定的時間值
time
進行修改.同時使用或同時不使用選項-a和-m,訪問和修改兩個戳記都將被更改.若只使用選項-a,則只修改訪問戳記.同樣,只使用選項-m,則只修改修改戳記.若要修改戳記的檔案尚不存在,除非使用-c選項,touch
將建立它(作為空檔案,並賦予0666的模式且受
umask
值的限制).
posix標準定義的選項
-a 修改檔案
file
的訪問時間.只改變訪問時間。
-c 不建立檔案
file.
-m 修改檔案
file
file
只改變修改時間。
-r ref_file
將參照檔案
ref_file
相應的時間戳記的數值作為指定檔案
file
時間戳記的新值.
-t time
使用指定的時間值
time
作為指定檔案
file
相應時間戳記的新值.此處的
time
規定為如下形式 的十進位制數∶
[[cc]yy]mmddhhmm[.ss]
這裡,cc為年數中的前兩位,即」世紀數」;yy為年數的後兩位,即某世紀中的年數.如果不給出cc的值,則touch
將把年數ccyy限定在1969--2068之內.mm為月數,dd為天將把年數ccyy限定在1969--2068之內.mm為月數,dd為天數,hh為小時數(幾點),mm為分鐘數,ss為秒數.此處秒的設定範圍是0--61,這樣可以處理閏秒.這些數字組成的時間是環境變數tz指定的時區中的乙個時間.由於系統的限制,早於2023年1月1日的時間是錯誤的.
posix標準的細節
已被廢棄的
touch
版本使用時會出現模稜兩可的情況:
ugly_time
到底是時間值還是檔名?由於此種版本尚未提供-r或-t選項,所以使用時至少要有兩個
命令列引數,作為時間值,
ugly_time
必須為第乙個引數.這裡的
ugly_time
是乙個形為mmddhhmm[yy]的八位或十位整數.其中,yy是介於69--99之間表示1969--1999之間某一年的兩位數,如果不給,表示當前這一年.
gnu版本的細節
如果第乙個指定檔案
file
的名子從形式上說是選項
-t 的有效引數,並且沒有給出選項
-d,
-r 或 -t
-t 數,也沒有給`--'選項,那麼這個檔名將被解釋成時間值.
一般情況下,利用
touch
修改檔案的時間戳記時要求使用者時該檔案的所有者.除非只是把檔案的訪問和修改兩種時間戳記修改為當前的時刻,這種情況只要求使用者擁有對該檔案`寫'的權利就行了.
gnu版本選項用法簡介
-a,
--time=atime,
--time=access,
--time=use
只修改訪問時間.
-c,
--no-create
如果要修改的檔案不存在,此選項使touch不去建立它.
-d,
--date=time
使用時間值
time
代替指定檔案的戳記值.可以包含月份名,時區名以及`am'和
`pm'等
-f 此選項用於相容bsd版本的
touch(1).
-m,
--time=mtime,
--time=modify
只修改修改時間
. -r
file,
--reference=file
使用參照檔案
file
的時間戳記值修改指定檔案的時間戳記.
-t decimtime
這裡時間值
decimtime
的格式為mmddhhmm[[cc]yy][.ss]
從左至右分別是月份,日期,小時,分鐘,可選的世紀和年,以及可選的秒.
touch
將用這組數值修改指定檔案的時間戳記.請注意,這個格式與posix標準所規定的格式並不一樣.
$ touch effyl
使用touch命令,你同樣可以建立多個檔案。例如,如下命令將建立名稱分別為sheffyl、myeffyl和lueffyl的三個檔案:
$ touch sheffyl myeffyl lueffyl使用-a選項,可以改變或更新檔案的最新訪問時間。如下命令更新檔案的訪問時間,如果檔案effyl不存在,它將建立乙個以effyl命名的新的空檔案:
$ touch -a effyl使用-c選項,可以避免建立乙個新檔案,並用當前時間更新檔案的時間戳:
$ touch -c effyl使用-m選項,可以只改變檔案的修改時間,而訪問時間不變:
$ touch -m effyl你可以同時使用-c和-t選項,來明確設定檔案的時間,命令格式如下所示:
$ touch -c -t yymmddhhmm filename例如,我們將檔案effyl的修改時間和訪問時間設定為12年12月13日10點30分:
$ touch -c -t 1212131030 effyl如果想使用檔案myeffyl的時間戳更新檔案effyl的時間戳,那麼可以使用-r選項:
$ touch -r myeffyl effyl
Linux下touch命令的使用
在linux中,每個檔案都與時間戳相關聯,每個檔案儲存最後一次訪問時間 最後一次修改時間和最後一次更改時間的資訊。因此,每當我們建立新檔案 訪問或修改現有檔案時,該檔案的時間戳都會自動更新。下面,我們將介紹一些touch命令的使用案例。touch命令是unix linux作業系統的標準程式,用於建立...
linux中新建檔案命令touch用法詳解
quote linux中新建檔案命令touch用法詳解 linux中的touch命令一般用來修改檔案的時間,或者新建乙個不存在的檔案.語法如下 touch acm r ref file 參照檔案 t time 時間值 file 檔名 例子 touch file1.txt 更新file1.txt的訪問...
linux命令 touch命令
touch命令將每個檔案的訪問時間和修改時間改為當前時間。touch 選項 檔案 1 在當前目錄下建立乙個空檔案a.log root vm 0 4 centos chenwei touch a.txt root vm 0 4 centos chenwei ll total 60 rw r r 1 r...