touch 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文件与目录命令族(见文件与目录命令族)。名字叫"触摸",本质是"改时间"。
touch 改变文件的访问时间(atime)和修改时间(mtime)。如果文件不存在,顺手帮你建一个空的。所以它的两大用途:建空文件、刷时间戳。
一、基本用法
bash
touch newfile # 文件不存在则建空文件;存在则更新时间戳
touch a.txt b.txt # 一次建/更新多个
touch -c nofile # -c:不创建新文件,只更新已存在的很多人以为 touch 是"建文件命令",其实它是"改时间命令",建空文件只是顺带。用
-c(no-create)可以严格只改时间、绝不新建。
二、指定时间:-d / -t
bash
touch -d "2024-01-01 12:00" file # 设成指定日期时间
touch -t 202401011200 file # 同效果,[[CC]YY]MMDDhhmm 格式
touch -d "yesterday" file # 支持相对词排查"为什么构建系统认为这文件过期了",常手动
touch调时间骗过 make 的依赖检查。也用于测试"文件时间变化触发什么逻辑"。
三、参考其他文件:-r
bash
touch -r ref.txt target.txt # 把 target 时间设成和 ref 一样
-r(reference)照抄另一个文件的时间戳,批量对齐文件时间时方便。
四、实战:触发重新构建
bash
touch src/main.c # make 发现 main.c 比目标新 → 重新编译这是 touch 最经典的实战:让某个源文件"看起来刚改过",强制构建系统重新处理它,而不用真去编辑。
一句话总结
touch = 改文件时间戳(建空文件是顺带):文件不存在则建空文件、存在则刷新 atime/mtime;-c 严格不新建;-d/-t 设指定时间、-r 抄别文件时间;实战常用来"让 make 以为文件刚改过"触发重新构建(见make 相关)。