TOUCH(1)

NAME
touch - 修改檔案的時間戳記.

總覽
touch [-acm][-r ref_file(參照檔案)|-t time(時間值)] file(檔名)...

被廢棄的版本:
touch [-acm][ugly_time] file(檔案)...

GNU版本:
touch [-acfm] [-r file(參照檔案)] [-t decimtime(時間值)] [-d time(時間值)] [--time={atime,access,use,mtime,modify}] [--date=time] [--reference=file] [--no-create] [--help] [--version] [--] file(檔案)...

用法描述
touch 修改每個指定檔案 file 的存取(access)和／或修改(modification)時間戳記． 除非使用-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指定的時區中的一個時間．由於系統 的限制，早於1970年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標準所規定的格式並 不一樣．

GNU版本通用選項

--help
    使程式在標準輸出上顯示該程式的用法信息．

--version
    使程式在標準輸出上列印其版本信息．

GNU版本通用選項

--help
    使程式在標準輸出上顯示該程式的用法信息．

--version
    使程式在標準輸出上列印其版本信息．

--  用於使程式終止對選項的解析．

運行環境
環境變量TZ一般用來表明所給時刻是哪個時區的．而環境變量LANG, LC_ALL, LC_CTYPE 和 LC_MESSAGES還是一般情況下的意義．

遵循
GNU版touch的-t選項的參數所用格式並不符合POSIX標準1003.2的描述．

用法實例
如果檔案foo並不存在，那麼命令`touch foo'將創建它，並把最 後的修改時間改到現在的時刻．這一特點經常用來引導 make 的執行．

注意
這篇說明描述了fileutils-4.0程式包中的 touch． 其它版本的touch可能與此有稍許不同． 對本文的修正和增補請致信aeb@cwi.nl． 程式缺陷請向fileutils-bugs@gnu.ai.mit.edu報告