Bem, você pode fazer algo sorrateiramente como:
$ echo "'date +%s' - (1125 * 24 * 60 *60)" |bc 1194478815 $ date -r 1194478689 Wed, 07 Nov 2007 18:38:09 -0500
Testado no OpenBSD (definitivamente não baseado em gnu), e parece funcionar.
Quebrando as etapas:
- obtenha o unixtime atual (segundos desde o início da época do unix):
$ date +%s 1291679934
- obtenha o número de segundos em 1125 dias
$ echo "1125 * 24 * 60 *60" | bc 97200000
-
subtraia um do outro (1291679934 - 97200000) = 1194478815
-
use o novo unixtime (1194478815) para imprimir uma data bonita
$ date -r 1194478689 Wed, 07 Nov 2007 18:38:09 -0500
-
Como alternativa, no solaris você pode fazer isso para imprimir a data *:
/bin/echo "0t1194478815>Y\n<Y=Y" |adb
* referenciada no link
Além disso, uma alternativa no Solaris para obter o registro de data e hora atual do comando de data ** é:
/usr/bin/truss /usr/bin/date 2>&1 | nawk -F= '/^time()/ {gsub(/ /,"",$2);print $2}'
** referenciado no link