如何通过终端命令获取文件和目录的时区?

如何通过终端命令获取文件和目录的时区?

例如,我在纽约时区创建一个文件和目录。

然后我将系统中的时区更改为伦敦(英国),但仍然想知道在哪个时区创建了哪个文件和目录。 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) 以来的秒数。只要需要人类可读,该数字就会转换为本地时间,并且通常基于系统配置的当前时区。事实上,令我有点惊讶的是,时区被保存在统计数据中。

相关内容