例如,我在纽约时区创建一个文件和目录。
然后我将系统中的时区更改为伦敦(英国),但仍然想知道在哪个时区创建了哪个文件和目录。 Unix 有显示它的终端命令吗?
答案1
时区不记录在文件和目录中。时间戳表示为自 UTC 1970 年 1 月 1 日午夜(该时刻通常称为“纪元”)以来的秒数。
答案2
除了 berndbausch 的答案之外,我还想发布stat
系统上文件的输出:
$ stat a.out
File: a.out
Size: 16632 Blocks: 40 IO Block: 4096 regular file
Device: 831h/2097d Inode: 17827331 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 1000/ stew) Gid: ( 1000/ stew)
Access: 2021-04-07 16:13:49.880038403 +0200
Modify: 2020-12-20 21:23:03.206200984 +0100
Change: 2020-12-20 21:23:03.206200984 +0100
Birth: 2020-12-20 21:23:03.194201098 +0100
如果我们对创建日期感兴趣,那就是“出生”。可以看到时间是:
2020-12-20 21:23:03.194201098 +0100
暂时忽略日期和秒数,专注于其余的事情。那个时间是21:23 +0100。这意味着它是在21:23在一个世界标准时间+1小时时区。这将是 20:23 UTC。
相比之下,您可以看到它的最后访问时间是16:13在一个世界标准时间+2小时时区。时区的差异与夏令时有关。这将是在14:13 世界标准时间。
Unix 时间仅跟踪自纪元 (UTC) 以来的秒数。只要需要人类可读,该数字就会转换为本地时间,并且通常基于系统配置的当前时区。事实上,令我有点惊讶的是,时区被保存在统计数据中。