Linux touch 命令 - 為什么我們需要改變時(shí)間戳?
我們可能在 Linux 下運(yùn)用 touch 命令創(chuàng)建一個(gè)空文件。當(dāng)然我們也可以使用其他命令例如 vi, nano 或是任意一個(gè)編輯工具來實(shí)現(xiàn)。但是你可能需要更多的步驟來完成操作。其實(shí)你要知道 touch 命令的主要功能并不是為了創(chuàng)建一個(gè)空文件哦。
本文引用地址:http://m.butianyuan.cn/article/201610/305667.htm什么是 touch 命令
眾所周知,每個(gè)文件都被附有時(shí)間戳。這個(gè)時(shí)間戳記包括訪問時(shí)間和修改時(shí)間。而 Touch 命令主要就是用來修改文件的訪問時(shí)間和修改時(shí)間。
為什么我們需要使用 touch 命令
既然 touch 命令描述的是改變時(shí)間戳,那么我們可能會(huì)想為什么我們需要去改變時(shí)間戳呢?這個(gè)問題會(huì)引發(fā)我們的深思。然而,我想有個(gè)理由可以解釋為什么我們需要使用它。如果你參加了一個(gè)全球范圍的開源項(xiàng)目,那么時(shí)間戳可能變得很重要。編譯源代碼文件可能需要同一地區(qū)的時(shí)間戳。如果未統(tǒng)一,程序可能會(huì)編譯失敗。(譯注:有強(qiáng)迫癥的同學(xué)也很喜歡這個(gè)命令——就看不得亂七八糟的時(shí)間,;>)
不帶任何選項(xiàng)下運(yùn)行 touch
最簡(jiǎn)單的使用 touch 命令。只需鍵入:
$ touch file_name
請(qǐng)觀察下面的一張截圖。
File_1.txt原來的時(shí)間戳是 12:42。在我們使用 touch 命令后,它改變?yōu)榱?17:08。由此看出,默認(rèn)情況下,touch 會(huì)將文件的時(shí)間戳改為當(dāng)前時(shí)間。
只改變?cè)L問時(shí)間
正如我們之前提到的,每個(gè)文件都附有訪問時(shí)間和修改時(shí)間。上面的時(shí)間戳是 17:08。我們可以看更多的細(xì)節(jié)。
我們發(fā)現(xiàn)訪問時(shí)間和修改時(shí)間的值是相同的都是 17:08:35 ,還有它們屬于同一時(shí)區(qū) GMT +7。
如果現(xiàn)在我們要只改變?cè)L問時(shí)間,我們需要使用-a選項(xiàng)。
$ touch -a file_1.txt
如你所見,訪問時(shí)間變?yōu)榱?17:51:37 ,但是修改時(shí)間仍為17:08:35。[譯注:原文為 Change time(狀態(tài)改變時(shí)間)應(yīng)是作者筆誤]
只改變修改時(shí)間
我們可以使用-m選項(xiàng)來實(shí)現(xiàn)?,F(xiàn)在我們用file_2.txt作個(gè)示例。
$ touch -m file_2.txt
現(xiàn)在修改時(shí)間從 12:42:20 改為了 17:57:20。請(qǐng)注意,當(dāng)文件被訪問或修改時(shí),狀態(tài)改變時(shí)間域的值總會(huì)對(duì)其記錄。
更改為自定義時(shí)間戳
-a和-m選項(xiàng)都會(huì)將文件的時(shí)間戳改為現(xiàn)在當(dāng)前時(shí)間。當(dāng)然我們也可以更改為自定義時(shí)間戳。使用-t選項(xiàng)實(shí)現(xiàn)。
從上面示例示例中的 file_2.txt,我們看出它的時(shí)間戳是:
訪問時(shí)間:12:42:20
修改時(shí)間:17:57:20
執(zhí)行日期:2014-01-14
假如我們想要將訪問時(shí)間和修改時(shí)間改為2014年1月12日 09:58:27。我們可以用下列命令來完成:
$ touch -t 201401120958.27 file_2.txt
-t 選項(xiàng)語(yǔ)法組成 :
[[CC]YY]MMDDhhmm [.SS]
CC - 年份的前兩位
YY - 年份的后兩位
MM - 月份 [01-12]
DD - 日期 [01-31]
hh - 時(shí) [00-23]
mm - 分 [00-59]
SS - 秒 [00-61]
改變?nèi)掌诤蜁r(shí)間的另一種方式
如果你覺得[[CC]YY]MMDDhhmm [.SS]格式不適合你,我們也可以使用 -d 選項(xiàng)。下面是-d選項(xiàng)使用的一個(gè)示例。
更改指定日期
舉例來說,我們有個(gè)名為 file_3.txt 的文件,它的相關(guān)屬性在下面的截圖中展示了。
現(xiàn)在我們要將日期2014年1月14日改為2013年12月20日。可以使用下列命令:
$ touch -d '10-December-2013' file_3.txt
不出意料,訪問時(shí)間和修改時(shí)間的日期已經(jīng)改為了2013年12月10日。
改變時(shí)區(qū)
如果我們想改變指定GMT的時(shí)間,我們也可以使用-d選項(xiàng)。先讓file_3.txt 移回當(dāng)前時(shí)間。
$ touch file_3.txt
不難發(fā)現(xiàn) file_3.txt 的時(shí)區(qū)為 GMT +0700。要改為 GMT3 時(shí)區(qū),我們只需要鍵入如下命令:
$ touch -d GMT3 file_3.txt
好的,現(xiàn)在時(shí)間已經(jīng)改為了 10:00:00 AM。
結(jié)合參數(shù)下使用-d選項(xiàng)
還可以用很酷的方式使用-d選項(xiàng)。請(qǐng)觀察下面的圖片。
評(píng)論