You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac终端下使用带变量的touch -t命令循环修改文件创建日期问题

修改文件创建日期:问题排查与解决

问题场景

我有31个命名为01-07-2022.md、02-07-2022.md……31-07-2022.md的Markdown文件,需要将每个文件的创建日期修改为其文件名对应的日期(例如01-07-2022.md对应2022年7月1日)。尝试了以下代码但未达到效果:

for i in {01..31}
do
    touch -t 202207$i0000 $i-07-2022.md
done

原代码的问题

  • touch命令的功能限制:在macOS系统中,touch -t仅能修改文件的修改时间(mtime)和访问时间(atime),完全无法修改文件的创建时间(birth time),这就是代码失效的核心原因。
  • 补充:你的touch命令时间格式(YYYYMMDDhhmm)是正确的,但功能不匹配需求。

正确解决方案

在macOS上,可使用SetFile命令(属于Xcode命令行工具组件)修改文件创建时间。修正后的代码如下:

for i in {01..31}
do
  SetFile -d "$i/07/2022 00:00:00" "$i-07-2022.md"
done

说明

  1. 若未安装Xcode命令行工具,可通过执行xcode-select --install完成安装。
  2. 修正了原解决方案中的日期格式错误:原代码写为$i/01/2022,会错误地将日期设为1月,这里改为$i/07/2022以匹配文件名中的7月。

内容的提问来源于stack exchange,提问作者user13735688

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:55:25