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

使用touch -t命令设置特定日期时显示异常的问题求助

使用touch -t命令设置特定日期时显示异常的问题求助

嗨,我来帮你理清楚这个问题~

其实你的touch命令本身完全没问题,问题出在ls -l的默认显示规则上!

Unix/Linux(包括你用的macOS)下的ls命令,会根据文件时间和当前系统时间的间隔来决定日期显示格式:

  • 如果文件的修改/访问时间距离现在不到6个月,就显示「月 日 时分」
  • 如果超过6个月,就会把时分换成年份

你第一个例子用的是12月18日的时间,假设你操作的时候是在12月或者次年1-5月之间,这个时间和当前时间的间隔在6个月内,所以ls -l显示时分;而第二个例子是6月1日,要是你操作的时候是在12月(从第一个例子的12月来看很可能),6月到12月已经超过6个月了,所以ls自动换成了显示年份。

要验证touch是否真的正确设置了时间,你可以用更详细的ls命令:

  • 如果你是macOS(看你的输出里有staff组,应该是),用ls -lT testShell00,就能看到完整的年、月、日、时分秒
  • 要是是GNU ls(比如Linux),可以用ls -l --time-style=long-iso testShell00,同样能看到完整时间

如果就是想让ls -l每次都显示时分和年份,你可以给ls设置别名,比如在macOS里把alias ls='ls -lT'加到你的~/.zshrc或者~/.bashrc里,下次打开终端就生效了。

总结一下:你的touch操作完全正确,只是ls的默认显示逻辑在搞怪,用详细时间显示命令就能确认啦!

备注:内容来源于stack exchange,提问作者Jonatha Costa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 13:35:34