Linux如何一键修改文件的创建与修改时间?(touch技巧)
0
2026-03-07
linux中touch命令可批量调整文件时间:一、用-dset访问与修改;二、用-a/-m分别设置;三、用-r基于参考文件同步;四、用“ago/hence”做时间偏移;五、脚本化批量处理并模拟创建时间。

如果您需要调整文件的时间,包括时间访问、修改甚至时间创建时间(在支持的文件系统上),Linux中的touch 命令提供了灵活且高效的方式。以下是实现该目标的多种具体方法:一、使用 touch 修改访问与时间
touch 默认可同时更新文件的访问时间(atime)和修改时间(mtime)。通过指定时间参数,可将两者设为任何合法时间点。
1、执行命令:touch -d "2023-05-12 14:30:00" filename.txt
2、若需同时设置多个文件,可使用通配符:touch -d "2023-05-12 14:30:00" *.log
3、验证结果:运行stat filename.txt查看Access和Modify字段是否已更改二、分别独立设置访问与修改时间
当需对atime和mtime进行修改控制时,可使用-a和 -m 选项分离操作,避免相互覆盖。
1、仅更新访问时间:touch -a -d "2023-05-12 09:15:00" filename.txt
2、仅更新修改时间:touch -m -d "2023-05-12 16:45:00" filename.txt
3、确认分离效果:stat filename.txt 输出中访问 和修改时间应互不相同三、基于参考文件同步计时器
当需使目标文件的时间属性与某参照文件完全一致时,复制手动输入时间字符串,直接复用其计时器即可。
1、准备一个时间准确的参考文件:touch -d "2022-11-08 10:20:30" ref_file AskAI
无代码AI模型构建器,可以快速创建GPT-3模型,聊天机器人下载
2、将目标文件时间设为与ref_file完全一致:touch -r ref_file target_file
3、批量应用该操作:touch -r ref_file file1.txt file2.log dir1/、使用时间偏移量动态调整
不依赖绝对时间,而是以当前时间为基础进行四次加减运算,适用于按固定间隔统一偏移所有文件时间的场景。
1、将修改文件时间提前2天:touch -d "2 days ago" filename.txt
2、将访问时间延后3小时:touch -a -d "3 hour then" filename.txt
3、组合偏移(先设置mtime为昨天,再设置atime为1小时后):touch -m -d "yesterday" filename.txt && touch -a -d "1 hour" filename.txt五、脚本化一键批量处理(含创建时间)
模拟ext4等现代文件系统不直接暴露“创建时间”(crtime),但可以通过更改inode修改时间并取消自动更新相似模拟。以下脚本可实现单命令触发多文件时间统一重置。
1、创建脚本文件:echo '#!/bin/bash\ntouch -d "$1" "$@"' > settime.sh
2、赋予执行权限:chmod +x settime.sh
3、一键调用:./settime.sh "2024-01-01 00:00:00" file1 file2 dir/