我需要操纵几分钟的系统时间。
假设我需要保持时间不变,并将日期更改为下一个日期。
几分钟后,我需要恢复正常时间,而无需进行任何手动输入。
仅使用命令行如何实现这一点。
我已经经历过了更改系统时钟的命令行语句是什么?并且需要输入日期+时间。
我不想更改时间,只想更改日期。几分钟后,需求完成后,我不想手动输入日期和时间。
我想通过命令行回到正常时间。
答案1
这是(我认为)您想要的一个示例。它将仅将年份更改为去年 4 分钟,然后再次返回当前日期。您的机器需要连接到互联网才能正常工作:
sudo bash -c "timedatectl set-ntp off && date -s 'last year' && sleep 4m && timedatectl set-ntp on"
答案2
为了使以下内容正常工作,您应该首先转到“设置 →约会时间并禁用自动日期和时间。
然后,您可以使用以下命令作为(长)单行命令:
sudo date --set="2010-05-02 $(date '+%T')" && sleep 10 && sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
上述命令:
获取当前系统时间:
date '+%T'
并将日期设置为您希望的日期,保留当前时间:
sudo date --set="2010-05-02 $(date '+%T')"
在此示例中,日期为 ,您可以将其更改为您需要的日期
2010-05-02
。使用命令将更改后的日期保留指定的时间间隔
sleep
。在这里,我习惯将更改后的时间保留 10 秒。您可以在 的参数(此处为)中sleep 10
添加m
、h
或d
后缀,分别以分钟、小时或天为单位指定时间。sleep
10
将时间恢复为当前时间(需要互联网访问):
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
致谢什鲁库尔·哈比卜。