Posted on 2008-09-24 11:01
Prayer 閱讀(919)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
用途 更新文件的訪問和修改時間。
語法 touch [ -a ] [ -c ] [ -m ] [ -f ] [ -r RefFile ] [ Time | -t Time ] { File ... | Directory ... }
描述
touch 命令更新由 Directory 參數指定的每個目錄下的由 File 參數指定的每個文件的訪問和修改時間。如果沒有指定 Time 變量值,touch 命令就使用當前時間。如果指定了一個不存在的文件,touch 命令就創建此文件,除非指定了 -c 標志。
touch 命令的返回碼是時間沒有被成功修改的文件數目(包括不存在的文件和沒有創建的文件)。
注:
任何超出 2038 年(包含2038年)的日期都是無效的。
標志
-a 更改由 File 變量指定的文件的訪問時間。不要更改修改時間,除非也指定了 -m 標志。
-c 如果文件不存在,則不要進行創建。沒有寫任何有關此條件的診斷消息。
-f 嘗試強制 touch 運行,而不管文件的讀和寫許可權。
-m 更改 File 的修改時間。不要更改訪問時間,除非也指定了 -m 標志。
-r RefFile 使用由 RefFile 變量指定的文件的相應時間,而不用當前時間。
Time 以 MMDDhhmm[YY] 的格式指定新時間戳記的日期和時間,其中:
MM
指定一年的哪一月(從 01 到 12)。
DD
指定一月的哪一天(從 01 到 31)。
hh
指定一天中的哪一小時(從 00 到 23)。
mm
指定一小時的哪一分鐘(從 00 到 59)。
YY
指定年份的后兩位數字。如果 YY 變量沒有被指定,缺省值為當前年份。
-t Time 使用指定時間而不是當前時間。Time 變量以十進制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中:
CC
指定年份的前兩位數字。
YY
指定年份的后兩位數字。
MM
指定一年的哪一月(從 01 到 12)。
DD
指定一月的哪一天(從 01 到 31)。
hh
指定一天中的哪一小時(從 00 到 23)。
mm
指定一小時的哪一分鐘(從 00 到 59)。
SS
指定一分鐘的哪一秒(從 00 到 59)。
注:
1. touch 命令調用 utime () 子例程來更改所涉及文件的修改和訪問時間。當沒有真正擁有該文件,即使對文件有寫許可權,使用標志時也可能使 touch 命令失敗。
2. 當使用 touch 命令時,如果接收到錯誤消息,不要指定完整路徑名 /usr/bin/touch。
退出狀態
命令返回以下出口值:
0 命令成功執行。所有請求的更改已完成。
>0 發生一個錯誤。
示例
1. 要更新文件的訪問和修改時間,請輸入:
touch program。c
這會將 program.c 文件的上次訪問和修改時間設置為當前日期和時間。如果 program.c 文件不存在,touch 命令就創建一個同名的空文件。
2. 要避免創建新文件,請輸入:
touch -c program.c
3. 要僅更新修改時間,請輸入:
touch -m *.o
這會更新當前目錄下的以 .o 擴展名結尾的文件的上次修改時間(不更新訪問時間)。touch 命令經常以此方式使用,來改變 make 命令的結果。
4. 要明確設置訪問和修改時間,請輸入:
touch -c -t 02171425 program.c
這會將訪問和修改時間設置為當前年份的 2 月 17 日的 14:25(2:25 p.m.)。
5. 要使用另一文件的時間戳記而不用當前時間,請輸入:
touch -r file1 program.c
這會將 program.c 文件的時間戳記設置成與 file1 文件一樣。
6. 要使用指定時間而不是當前時間處理文件,請輸入:
touch -t 198503030303.55 program.c
這會將 program.c 文件的時間戳記設置為 1985 年 3 月 3 日上午 3:03:55。