c++ - 如何通过/etc/localtime的时区信息逆向查找linux当前设定的城市信息
ringa_lee
ringa_lee 2017-04-17 11:24:50
0
1
762

已知linux系统大多通过例如:

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

来设定当前时区。

那么如何通过这个localtime文件逆向查找到本系统设置的城市信息呢?

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
大家讲道理

針對你的問題,假如是一個軟連結文件,可以透過readlink指令取得原始檔案位址:

# readlink /etc/localtime
/usr/share/zoneinfo/Asia/Shanghai

如果不是連結文件,可以透過比較md5的方式來識別,因為大多數環境下應該都是以軟連結的形式存在,所以我這裡真地拷貝了一次文件來測試:

# cp /usr/share/zoneinfo/Asia/Shanghai abc
# m=`md5sum abc | awk '{print }'`
# find /usr/share/zoneinfo -type f | xargs md5sum | grep "$m"
c103f379c73f61b9eaf39a9a8e0c2cb1 /usr/share/zoneinfo/Asia/Shanghai
c103f379c73f61b9eaf39a9a8e0c2cb1 /usr/share/zoneinfo/PRC

如果有進一步需要,例如用腳本實現:

if [ -L “/etc/localtime” ]; then  # is symbolic link
    ...
else # normal file
    ...
fi
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板