![一个卷没有与系统其余部分一起进入 DST](https://linux22.com/image/1206459/%E4%B8%80%E4%B8%AA%E5%8D%B7%E6%B2%A1%E6%9C%89%E4%B8%8E%E7%B3%BB%E7%BB%9F%E5%85%B6%E4%BD%99%E9%83%A8%E5%88%86%E4%B8%80%E8%B5%B7%E8%BF%9B%E5%85%A5%20DST.png)
我在 Ubuntu 20.04 服务器上有一个 8TB USB 安装驱动器(exfat)。那里的文件似乎滞后了一个小时。这给各种同步和克隆工作相当辛苦!如果社区能提供任何关于如何发生这种情况以及如何修复它的想法,我将不胜感激。
我承认我不知道目录查询中时区变化是如何显示的。文件时间戳是否存在于 UTC 中并根据需要进行翻译?
答案1
大多数文件系统将时间戳记录为 UTC,并且工具会转换为当前进程中活动的时区(因此您只需使用TZ=UTC ls -l
并获取带有 UTC 时间戳的列表即可)。
基于 FAT 的文件系统是一个例外:它们使用本地时间,并在读取时转换为 UTC,然后将时间戳转换回本地时间以进行显示。
文件系统层中的转换是一个简单的偏移,而显示的转换使用历史时区信息,因此上周修改的文件将在文件系统层中应用 DST 偏移(因为它现在处于活动状态),并且不在显示层中应用 DST 偏移(因为它当时不活动)。
您可以挂载基于 FAT 的文件系统,并选择tz=UTC
禁用文件系统层中的偏移量,或者time_offset=
指定要调整的分钟数,但内核中的文件系统层不具有与应用程序相同的复杂转换功能。