温馨提示×

怎么修改linux 文件时间

小樊
106
2026-08-13 21:12:10
栏目: 智能运维

在 Linux 中修改文件的时间(atime / mtime / ctime)通常使用 touch 命令。下面按常见需求详细说明。


一、先了解三种时间

时间类型 含义 是否可修改
atime 最后访问时间 ✅ 可修改
mtime 最后内容修改时间 ✅ 可修改
ctime 最后状态/元数据修改时间 ❌ 不能直接改(随 mtime 自动变)

查看文件时间:

stat 文件名

二、用 touch 修改时间(最常用)

1️⃣ 修改为当前时间

touch 文件名

会同时更新 mtime 和 atime


2️⃣ 修改指定时间

格式:

touch -t YYYYMMDDHHMM.SS 文件名

示例:

touch -t 202401011200.00 test.txt

时间含义:

2024-01-01 12:00:00

3️⃣ 使用字符串时间(更直观)

touch -d "2024-01-01 12:00:00" test.txt

也支持:

touch -d "2 days ago" test.txt
touch -d "yesterday" test.txt

三、只修改访问时间或修改时间

只修改访问时间(atime)

touch -a -d "2024-01-01 10:00:00" test.txt

只修改修改时间(mtime)

touch -m -d "2024-01-01 10:00:00" test.txt

四、复制另一个文件的时间

touch -r 源文件 目标文件

示例:

touch -r a.txt b.txt

b.txt 的时间会变成 a.txt 的时间


五、批量修改文件时间

修改当前目录下所有 .log 文件

touch -d "2023-12-31" *.log

递归修改目录及文件

find . -exec touch -d "2024-01-01" {} \;

六、注意事项

✅ 需要 写权限
✅ 修改时间不会影响文件内容
✅ ctime 会在你修改 mtime 时自动更新
✅ 有些文件系统(如挂载时 noatime)会影响 atime


七、示例总结

# 查看时间
stat file.txt

# 改为当前时间
touch file.txt

# 指定时间
touch -d "2024-06-01 08:30:00" file.txt

# 复制时间
touch -r old.txt new.txt

如果你有具体场景(比如:伪造日志时间、批量恢复时间、Docker/挂载目录),可以告诉我,我可以给你更精确的命令。

0 踩