Linux touch 命令 - 為什么我們需要改變時(shí)間戳?
我們可能在 Linux 下運用 touch 命令創(chuàng )建一個(gè)空文件。當然我們也可以使用其他命令例如 vi, nano 或是任意一個(gè)編輯工具來(lái)實(shí)現。但是你可能需要更多的步驟來(lái)完成操作。其實(shí)你要知道 touch 命令的主要功能并不是為了創(chuàng )建一個(gè)空文件哦。
本文引用地址:http://dyxdggzs.com/article/201610/305667.htm
什么是 touch 命令
眾所周知,每個(gè)文件都被附有時(shí)間戳。這個(gè)時(shí)間戳記包括訪(fǎng)問(wèn)時(shí)間和修改時(shí)間。而 Touch 命令主要就是用來(lái)修改文件的訪(fǎng)問(wèn)時(shí)間和修改時(shí)間。
為什么我們需要使用 touch 命令
既然 touch 命令描述的是改變時(shí)間戳,那么我們可能會(huì )想為什么我們需要去改變時(shí)間戳呢?這個(gè)問(wèn)題會(huì )引發(fā)我們的深思。然而,我想有個(gè)理由可以解釋為什么我們需要使用它。如果你參加了一個(gè)全球范圍的開(kāi)源項目,那么時(shí)間戳可能變得很重要。編譯源代碼文件可能需要同一地區的時(shí)間戳。如果未統一,程序可能會(huì )編譯失敗。(譯注:有強迫癥的同學(xué)也很喜歡這個(gè)命令——就看不得亂七八糟的時(shí)間,;>)
不帶任何選項下運行 touch
最簡(jiǎn)單的使用 touch 命令。只需鍵入:
$ touch file_name
請觀(guān)察下面的一張截圖。

File_1.txt原來(lái)的時(shí)間戳是 12:42。在我們使用 touch 命令后,它改變?yōu)榱?17:08。由此看出,默認情況下,touch 會(huì )將文件的時(shí)間戳改為當前時(shí)間。
只改變訪(fǎng)問(wèn)時(shí)間
正如我們之前提到的,每個(gè)文件都附有訪(fǎng)問(wèn)時(shí)間和修改時(shí)間。上面的時(shí)間戳是 17:08。我們可以看更多的細節。

我們發(fā)現訪(fǎng)問(wèn)時(shí)間和修改時(shí)間的值是相同的都是 17:08:35 ,還有它們屬于同一時(shí)區 GMT +7。
如果現在我們要只改變訪(fǎng)問(wèn)時(shí)間,我們需要使用-a選項。
$ touch -a file_1.txt

如你所見(jiàn),訪(fǎng)問(wèn)時(shí)間變?yōu)榱?17:51:37 ,但是修改時(shí)間仍為17:08:35。[譯注:原文為 Change time(狀態(tài)改變時(shí)間)應是作者筆誤]
只改變修改時(shí)間
我們可以使用-m選項來(lái)實(shí)現?,F在我們用file_2.txt作個(gè)示例。

$ touch -m file_2.txt

現在修改時(shí)間從 12:42:20 改為了 17:57:20。請注意,當文件被訪(fǎng)問(wèn)或修改時(shí),狀態(tài)改變時(shí)間域的值總會(huì )對其記錄。
更改為自定義時(shí)間戳
-a和-m選項都會(huì )將文件的時(shí)間戳改為現在當前時(shí)間。當然我們也可以更改為自定義時(shí)間戳。使用-t選項實(shí)現。
從上面示例示例中的 file_2.txt,我們看出它的時(shí)間戳是:
訪(fǎng)問(wèn)時(shí)間:12:42:20
修改時(shí)間:17:57:20
執行日期:2014-01-14
假如我們想要將訪(fǎng)問(wèn)時(shí)間和修改時(shí)間改為2014年1月12日 09:58:27。我們可以用下列命令來(lái)完成:
$ touch -t 201401120958.27 file_2.txt

-t 選項語(yǔ)法組成 :
[[CC]YY]MMDDhhmm [.SS]
CC - 年份的前兩位
YY - 年份的后兩位
MM - 月份 [01-12]
DD - 日期 [01-31]
hh - 時(shí) [00-23]
mm - 分 [00-59]
SS - 秒 [00-61]
改變日期和時(shí)間的另一種方式
如果你覺(jué)得[[CC]YY]MMDDhhmm [.SS]格式不適合你,我們也可以使用 -d 選項。下面是-d選項使用的一個(gè)示例。
更改指定日期
舉例來(lái)說(shuō),我們有個(gè)名為 file_3.txt 的文件,它的相關(guān)屬性在下面的截圖中展示了。

現在我們要將日期2014年1月14日改為2013年12月20日??梢允褂孟铝忻睿?/p>
$ touch -d '10-December-2013' file_3.txt

不出意料,訪(fǎng)問(wèn)時(shí)間和修改時(shí)間的日期已經(jīng)改為了2013年12月10日。
改變時(shí)區
如果我們想改變指定GMT的時(shí)間,我們也可以使用-d選項。先讓file_3.txt 移回當前時(shí)間。
$ touch file_3.txt

不難發(fā)現 file_3.txt 的時(shí)區為 GMT +0700。要改為 GMT3 時(shí)區,我們只需要鍵入如下命令:
$ touch -d GMT3 file_3.txt

好的,現在時(shí)間已經(jīng)改為了 10:00:00 AM。
結合參數下使用-d選項
還可以用很酷的方式使用-d選項。請觀(guān)察下面的圖片。
評論