Linux touch 命令 - 为什么我们需要改变时间戳?
创始人
2024-03-01 12:27:21
0

我们可能在 Linux 下运用 touch 命令创建一个空文件。当然我们也可以使用其他命令例如 vi, nano 或是任意一个编辑工具来实现。但是你可能需要更多的步骤来完成操作。其实你要知道 touch 命令的主要功能并不是为了创建一个空文件哦。

什么是 touch 命令

众所周知,每个文件都被附有时间戳。这个时间戳记包括访问时间和修改时间。而 Touch 命令主要就是用来修改文件的访问时间和修改时间。

为什么我们需要使用 touch 命令

既然 touch 命令描述的是改变时间戳,那么我们可能会想为什么我们需要去改变时间戳呢?这个问题会引发我们的深思。然而,我想有个理由可以解释为什么我们需要使用它。如果你参加了一个全球范围的开源项目,那么时间戳可能变得很重要。编译源代码文件可能需要同一地区的时间戳。如果未统一,程序可能会编译失败。(译注:有强迫症的同学也很喜欢这个命令——就看不得乱七八糟的时间,;>)

不带任何选项下运行 touch

最简单的使用 touch 命令。只需键入:

$ touch file_name

请观察下面的一张截图。

Touch command

File_1.txt原来的时间戳是 12:42。在我们使用 touch 命令后,它改变为了 17:08。由此看出,默认情况下,touch 会将文件的时间戳改为当前时间。

只改变访问时间

正如我们之前提到的,每个文件都附有访问时间和修改时间。上面的时间戳是 17:08。我们可以看更多的细节。

Detail timestamp

我们发现访问时间和修改时间的值是相同的都是 17:08:35 ,还有它们属于同一时区 GMT +7。

如果现在我们要只改变访问时间,我们需要使用**-a**选项。

$ touch -a file_1.txt

Touch -a option

如你所见,访问时间变为了 17:51:37 ,但是修改时间仍为17:08:35。[译注:原文为 Change time(状态改变时间)应是作者笔误]

只改变修改时间

我们可以使用**-m选项来实现。现在我们用file_2.txt**作个示例。

File_2.txt detail timestamp

$ touch -m file_2.txt

Touch -m option

现在修改时间从 12:42:20 改为了 17:57:20。请注意,当文件被访问或修改时,状态改变时间域的值总会对其记录。

更改为自定义时间戳

-a和**-m选项都会将文件的时间戳改为现在当前时间。当然我们也可以更改为自定义时间戳。使用-t**选项实现。

从上面示例示例中的 file_2.txt,我们看出它的时间戳是:

访问时间:12:42:20
修改时间:17:57:20
执行日期:2014-01-14

假如我们想要将访问时间和修改时间改为2014年1月12日 09:58:27。我们可以用下列命令来完成:

$ touch -t 201401120958.27 file_2.txt

Touch using -t option

-t 选项语法组成 :

[[CC]YY]MMDDhhmm [.SS]

CC - 年份的前两位 
YY - 年份的后两位 
MM - 月份 [01-12]
DD - 日期 [01-31]
hh - 时 [00-23]
mm - 分 [00-59]
SS - 秒 [00-61]

改变日期和时间的另一种方式

如果你觉得**[[CC]YY]MMDDhhmm [.SS]格式不适合你,我们也可以使用 -d 选项。下面是-d**选项使用的一个示例。

更改指定日期

举例来说,我们有个名为 file_3.txt 的文件,它的相关属性在下面的截图中展示了。

File_3.txt detail timestamp

现在我们要将日期2014年1月14日改为2013年12月20日。可以使用下列命令:

$ touch -d '10-December-2013' file_3.txt

Change date using -d option

不出意料,访问时间和修改时间的日期已经改为了2013年12月10日。

改变时区

如果我们想改变指定GMT的时间,我们也可以使用**-d**选项。先让file_3.txt 移回当前时间。

$ touch file_3.txt

Reset file_3.txt timestamp

不难发现 file_3.txt 的时区为 GMT +0700。要改为 GMT3 时区,我们只需要键入如下命令:

$ touch -d GMT3 file_3.txt

Change into GMT3 timezone

好的,现在时间已经改为了 10:00:00 AM。

结合参数下使用-d选项

还可以用很酷的方式使用**-d**选项。请观察下面的图片。

Change date using keyword

我们可以将单词 next Sunday 和 GMT 3合成一个值,而 touch 命令仍然能识别它。日期已经改为了2014年1月21日,而当前的日期为2014年1月14日。

还有另一个**-d**选项的示例。 首先,我们要将file3_3.txt重置到当前日期和时间。

$ touch file_3.txt

Reset file_3.txt timestamp

然后我们尝试这个命令:

$ touch -d '1 year ago 13:43:07' file_3.txt

Change date using keyword

太震撼了,Touch 甚至能识别单词‘1 year ago’。现在的日期以及时间已经改为了2013年1月14日,13:43:07。

创建一个空文件

当你运行 touch 命令目标文件不存在时,touch 会创建一个同名的空文件。

$ touch file_10.txt

Create an empty file

同时创建多个文件

你可以用空格将目标文件分割开来,以此来创建多个文件。

$ touch doc_10.txt doc_20.txt doc_30.txt

Create multiple files

总结

如果你要处理关于文件或目录的时间戳问题,那么 Touch 会对你很有用的。一如既往得你也可以键入man touchtouch –help来显示帮助页面了解更多细节。


via: http://linoxide.com/linux-command/linux-touch-command/

译者:Luoxcat 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

雷蛇推进灵刃18 Ubun...
近日,科技媒体Phoronix披露了一则重要消息:雷蛇正为其旗舰级...
2026-07-08 23:01:45
Fedora“AI桌面”计...
科技领域对人工智能的探索持续深入,不同开源社区对此展现出截然不同的...
2026-07-06 07:35:51
Linux新内核能玩啥手柄...
IT之家 5 月 31 日消息,据科技媒体 Phoronix 今天...
2026-07-05 13:02:05
揭秘Linux内核-如何实...
2026-06-24 09:56:03
Linux一口气删掉近40...
在开源世界里,软件被淘汰通常有两种原因:要么没人用了,要么没人维护...
2026-06-23 07:53:14
AI辅助Linux系统管理...
我并非所有场景都推崇使用AI。在创意类工作中,我坚持认为AI介入空...
2026-06-20 12:53:31

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
Kodi 20.0 发布,支持... Kodi 20 版本增加了多项重要功能。Kodi 是 Kodi 基金会开发的跨平台开源媒体播放器,提...