SetFile 是 macOS 上唯一能直接修改文件创建时间的原生命令,但仅在 Catalina 及更早系统或未移除该工具的版本中有效;需用严格 MM/DD/YYYY HH:MM:SS 格式,且不适用于 APFS 加密卷、iCloud 文件夹或网络盘。
你需要把一份合同文件的创建时间改成去年签约当天,但 Finder 里根本找不到修改入口,只能靠终端命令硬改——这在 macOS 上确实可行,但方法取决于你用的是什么系统版本、文件存放在哪种磁盘格式上,且【部分命令在 macOS 13 Ventura 及更新版本中已失效】。
SetFile 是唯一能直接写入文件系统 birth time 的原生命令,但它在较新系统中已被苹果逐步移除或限制权限。
打开终端 → 输入 which SetFile → 按回车。
如果返回 /usr/bin/SetFile,说明工具就绪;若提示 SetFile not found,跳过后续 SetFile 步骤,改用 exiftool 或脚本方案。
注意:即使命令存在,APFS 加密卷、iCloud 同步文件夹、网络挂载盘上的文件也无法被 SetFile 修改创建时间。
这是最干净、最接近底层 inode 时间戳的写法,无需额外依赖,一步到位。
第一步:在终端中输入命令,格式严格为 SetFile -d "MM/DD/YYYY HH:MM:SS" 文件路径。
例如,要把桌面的 项目立项书.pdf 创建时间设为 2025 年 9 月 3 日上午 10 点 15 分,就输:SetFile -d "09/03/2025 10:15:00" ~/Desktop/项目立项书.pdf。
【日期格式必须是 MM/DD/YYYY HH:MM:SS,不能用横杠或中文“年月日”,否则命令静默失败】
执行后不报错即成功。右键文件 → “显示简介” → 查看“创建日期”是否已更新。
有些专业软件(如 Time Machine、rsync、Git LFS)会校验 atime/mtime/birthtime 之间的逻辑关系。如果只改 birthtime 而 mtime 还停留在 2026 年,可能触发异常警告。
方法一:先统一访问与修改时间 → 再补创建时间
进入文件所在目录:cd ~/Documents/合同归档。
批量将所有 PDF 的访问和修改时间设为 2025 年 8 月 12 日 14:30:touch -a -m -t 202508121430.00 *.pdf。
再逐个补上创建时间:for f in *.pdf; do SetFile -d "08/12/2025 14:30:00" "$f"; done。
方法二:单文件快速同步(推荐用于关键文件)
直接运行:touch -a -m -t 202508121430.00 /path/to/file.docx && SetFile -d "08/12/2025 14:30:00" /path/to/file.docx。
这个 && 表示前一个命令成功才执行下一个,避免只改了一半时间戳。
exiftool 不是改文件系统时间,而是往文件内部写入标准 CreateDate 元数据。macOS 在读取某些媒体文件时,会自动把该字段映射为文件创建时间——前提是文件本身支持嵌入式时间戳。
先装工具:brew install exiftool(没装 Homebrew 就先去官网下)。
给当前目录所有 JPG 写入创建时间:exiftool -CreateDate="2025:07:22 09:45:00" -api QuickTimeUTC=1 *.jpg。
强制让系统重新读取元数据并刷新 birthtime:touch -c *.jpg。
这一步 touch -c 很关键,它不改变任何时间戳,只触发 macOS 重新解析文件元数据并同步到文件系统层。
右键文件 → “显示简介” → 拉到最下方看“创建日期”是否已变。
或者用终端精准查:stat -f "创建:%SB" ~/Desktop/项目立项书.pdf,输出类似 创建:Jul 22 09:45:00 2025 即成功。
注意:如果简介里“创建日期”没变,但 stat 显示变了,说明 Finder 缓存未刷新,重启访达(Option+右键 Dock 中访达图标 → “重新开启”)即可。