我正在尝试在 unix 服务器中执行昨天的 date 命令。尝试的命令是:
date --date="1 day ago"
date --date="1 days ago"
date --date="yesterday"
date --date="-1 day"
这些命令在一台服务器上有效,但在其他几台服务器上,同样的命令却无效,这些服务器上的日期可以正确打印当前日期。有人能指出其他服务器可能存在什么问题吗?我收到如下错误:illegal option -- date=1 day ago
服务器详细信息:SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW,SPARC-Enterprise
答案1
--date
在许多 UNIX 系统上并不是一个传统的日期选项。
如果您要使用多种 UNIX/linux 类平台,请尝试检查每个平台上 date (1) 的手册页(如果已安装手册页),并查看所有平台上通用的日期选项,作为起点。
您可能会发现 date -v(调整)相当易于移植。
类似的东西date -v-1d
可能会起作用。在每个系统上测试它,看看它是否在所有系统上都有效。它显示过去一天调整的当前数据值。
答案2
TZ
您只需在调用之前从环境变量中减去 24 小时即可date
。
$ TZ=GMT date
Wed Mar 27 09:11:02 GMT 2013
$ TZ=GMT+24 date
Tue Mar 26 09:11:05 GMT 2013
适用于 Solaris 和 Linux。