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