为什么 /etc/localtime 是符号链接?

为什么 /etc/localtime 是符号链接?

众所周知,为了设置新的时区需要执行以下步骤

例如当我们想要 UTC 时间时

  unlink /etc/localtime   
  ln -s /usr/share/zoneinfo/UTC /etc/localtime

所以我们创建从 UTC 到 /etc/localtime 的符号链接

我只是想知道为什么我们需要创建链接,

不仅仅是复制文件

/usr/share/zoneinfo/UTC 到 /etc/localtime作为:

cp /usr/share/zoneinfo/UTC /etc/localtime

复制文件有什么问题吗?

答案1

您在标签中提到了 RHEL,所以我假设这就是您正在使用的。

对于 RHEL 6 及更早版本,当您升级tzdata软件包时,它会触发tzdata-update.这会读取/etc/sysconfig/clock变量,并根据需要ZONE进行更新。/etc/localtime

这意味着,如果你改变现状,/etc/localtime那么你必须/etc/sysconfig/clock也要进行更改,否则下次有tzdata补丁时您的更改可能会丢失。

对于 RHEL7,您应该用来timedatectl set-timezone管理时区。

# date
Wed Jul 20 12:34:51 EDT 2016
# timedatectl set-timezone UTC
# ls -l /etc/localtime 
lrwxrwxrwx. 1 root root 25 Jul 20 16:35 /etc/localtime -> ../usr/share/zoneinfo/UTC
# date
Wed Jul 20 16:35:07 UTC 2016
# timedatectl set-timezone America/New_York
# ls -l /etc/localtime                     
lrwxrwxrwx. 1 root root 38 Jul 20 12:35 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
# date                                     
Wed Jul 20 12:35:18 EDT 2016

相关内容