如何在Linux中安装并使用Touch Linux创建空白文件或修改时间的方法

2026-06-03电脑数码81621

touch是Linux及类Unix系统自带的命令行工具,用于创建空文件或更新文件的访问时间(atime)和修改时间(mtime),不修改ctime,无需安装。

touch 不是某个叫 “Touch Linux” 的发行版,也不是需要“安装”的独立软件——它是几乎所有 Linux 和类 Unix 系统(包括 macOS)自带的命令行工具,无需额外安装。

如果你在终端里输入 touch --version 能看到输出(比如 touch (GNU coreutils) 9.4),说明它已就位;如果提示 command not found,那大概率是你用的极简容器或嵌入式系统删掉了 coreutils,此时应重装 coreutils 包,而不是找什么“Touch Linux”。


如何用 touch 创建空白文件

最常用也最容易误解的用法:直接 touch filename

  • 如果 filename 不存在,touch 会创建一个大小为 0 字节的空文件
  • 如果 filename 已存在,touch 不会报错,但会把它的 atime(访问时间)和 mtime(修改时间)都更新为当前系统时间
  • 不支持递归创建父目录;若路径中目录不存在(如 logs/app.loglogs/ 不存在),会报错 No such file or directory,此时得先用 mkdir -p logs

常见错误现象:

执行 touch /tmp/data.csv 却提示权限拒绝?不是 touch 问题,而是你对 /tmp 下该路径无写权限(比如被 noexecnosuid 挂载选项限制,或 SELinux 策略拦截)。


如何用 touch 修改文件的访问时间或修改时间

touch 默认同时改 atimemtime,但多数场景需要分离控制。

  • 只更新访问时间:touch -a filename
  • 只更新修改时间:touch -m filename
  • 同时指定时间并只改其中一项:touch -a -d "2024-01-01 09:00" filename
  • 注意:ctime(状态变更时间)无法通过 touch 手动设置——它由内核自动维护,只要文件元数据(权限、所有者、xattr 等)或内容发生任何变更,ctime 就会刷新

性能影响:

CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载

频繁用 -a 更新 atime 可能带来 I/O 开销(尤其机械盘或 NFS)。现代系统常默认启用 relatimenoatime 挂载选项来缓解,此时 touch -a 仍有效,但普通读取不会触发 atime 更新。


如何用 touch 批量设时间戳或复制参考时间

批量操作依赖通配符或脚本,但要注意 shell 展开时机和错误处理。

  • 把当前目录下所有 .log 文件时间统一设为昨天:touch -d "yesterday" *.log
  • 用参考文件 template.conf 的时间戳覆盖一批配置文件:touch -r template.conf app.conf nginx.conf
  • 若参考文件时间本身不合法(比如是未来时间或纳秒级精度),目标文件时间也会继承该值,stat 可验证:stat app.conf | grep -E "(Access|Modify)"
  • -t-d 参数不能混用;-t 格式严格(如 202605271849.00),-d 更灵活(支持 "3 hours ago""next Friday"),但解析依赖系统 locale 和 GNU date 实现

容易踩的坑:

在脚本中用 touch -d "$VAR" file,若 $VAR 为空或含空格未加引号,会导致命令失败或误创建文件;务必写成 touch -d "$VAR" file 并确保 $VAR 非空。


touch 看似简单,真正难的是理解它不做什么:它不改 ctime,不建目录,不处理硬链接的 inode 时间一致性,也不绕过文件系统挂载选项(如 noatime-a 的实际效果限制)。用之前先 stat 看一眼原始时间,改完再 stat 对比,比背参数更可靠。

《如何在Linux中安装并使用Touch Linux创建空白文件或修改时间的方法.doc》

下载本文的Word格式文档,以方便收藏与打印。