本文最后更新于 2019-06-12【99 天前】,文中所描述的信息可能已发生改变,请谨慎使用。如有问题或建议,欢迎在文章底部留言参与讨论!

Linux 下的 touch 命令在日常科研工作中使用也相当频繁,有了它你就可以改变时间戳,达到时光穿梭的目的。

Linux touch 命令 - Quanyin说:imtqy.com

touch 命令基本用法

提起 touch 命令,大家想到的肯定是它的两个用法:

  • 创建新文件
  • 改变时间戳

这两种用法大家在工作中早已用腻了,不再赘述了。

防止创建文件

如果在 touch 后面直接跟上一个文件名,该文件如果不存在的话,将创建一个相应名字的文件。那么如果我们只想改变文件的时间戳,如果文件不存在时不进行文件创建该怎么做?这里需要加上 -c 选项。

touch -c filename

仅改变文件访问时间

我们知道,如果不带任何选项执行 touch 命令时,文件的访问时间及修改时间都是同时被改变成当前系统时间,通过 stat 命令可以查看文件更详细的信息。

如果我们只想改变文件的访问时间,只需加上 -a 选项即可, a 即是单词 access 的缩写。

touch -a file

仅改变修改时间

如果我们只想改变文件的修改时间,只需加上 -m 选项即可, m 即是单词 modify 的缩写。

touch -m file

更改为自定义时间戳

不管是不带选项,还是带上 -a 或 -m 选项,都会将文件相应的时间改为当前系统时间戳。那如果我们想改为自定义的时间戳呢?要怎么处理?否则怎么算得上时光穿梭?

我们有两种方法来更改为自定义时间戳。

加上 -t 选项

比如我们将文件的时间戳改为一个将来时间:

touch -t 202001012020.20 file

在这里, -t 后面所带的时间戳的格式为:

[[CC]YY]MMDDhhmm [.SS]

具体来讲,是这样的:

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

加上 -d 选项

我们再用新方法将文件的时间戳改成一个过去的时间(2008年奥运会开幕式):

touch -d '08-August-2008' file

在这里,时间的格式为:日-月-年 。但是,这里的时间可以相当灵活,比如也支持 yesterday 、 1 year ago 等等模糊时间:

touch -d 'yesterday 08-August-2008' file

除了更改时间,它还可以更改时区,只需在 -d 后面跟上对应的时区就可以

来自:良许Linux(微信号:liangxuxiansheng)
文章目录

推荐使用:阿里云 云翼计划学生优惠、ECS、轻量应用等产品与服务【 点击注册

本文作者:Quanyin Tang

本文链接:利用 touch 在 Linux 下进行时光穿梭 - https://www.imtqy.com/linux-touch.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Quanyin 所有,未经允许禁止转载,经授权转载请注明出处!