温馨提示×

centos如何清空时间戳

小樊
53
2026-09-17 22:16:09
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)里,“清空时间戳”这个说法可能有几种不同含义,下面按常见场景给你说明怎么做。


一、清空/重置文件的“访问时间”和“修改时间”

1. 把文件时间设为当前时间(最常用)

touch 文件名

这会更新文件的 atime(访问时间) 和 mtime(修改时间) 为当前时间。

2. 把文件时间设为“1970-01-01 00:00:00”(真正清空)

touch -t 197001010000 文件名

或者:

touch -d "1970-01-01 00:00:00" 文件名

3. 把一个文件的时间“复制”给另一个文件

touch -r 源文件 目标文件

二、清空目录下所有文件的时间戳

touch *

递归清空(包括子目录):

find . -exec touch {} \;

三、日志/数据文件中“时间字段”的清空(不是文件系统时间)

如果你说的“时间戳”是指文件内容里的时间,比如:

  • 日志里的 2024-01-01 12:00:00
  • 数据库记录中的时间字段

那就需要用文本处理工具,例如:

sed -i 's/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}.*//' 文件名

或清空某一列(如 awk)。


四、文件系统层面“ctime(变更时间)无法清空”

需要注意:

  • ctime(inode 改变时间) 不能手动清零
  • 只要 touch、chmod、chown 等操作发生,ctime 就会更新
  • 只有 重新创建文件 才能“重置” ctime

例如:

mv file file.bak
touch file
cat file.bak > file

五、特殊场景:清空文件内容但不改时间(反向需求)

> 文件名

这会改变 mtime,但不一定改 atime。


如果你能具体说一下:

  • 是 文件时间戳 还是 日志里的时间
  • 是 单个文件 还是 整个系统
  • 目的是 隐藏操作 / 初始化 / 测试

我可以给你更精确的方法。

0 踩