É possível exibir a data presente, datas futuras e datas passadas com o comando
date.
Para começar, o comando puro nos indica a data presente:
date
Sáb Nov 3 22:35:15 BRST 2012
E se for no futuro próximo, digamos daqui a uns 20 segundos? Então:
date --date='20 seconds'
Sáb Nov 3 22:36:14 BRST 2012
Que tal daqui a 6 horas?
date --date='6 hours'
Dom Nov 4 04:37:10 BRST 2012
E amanhã, que horas serão?
date --date='tomorrow'
Dom Nov 4 22:37:51 BRST 2012
Ou:
date --date="1 day"
Dom Nov 4 22:38:57 BRST 2012
Ou:
date --date="next day"
Dom Nov 4 22:39:57 BRST 2012
Ou ainda:
date --date="-1 days ago"
Dom Nov 4 22:40:47 BRST 2012
Daqui a 2 dias:
date --date="2 days"
Seg Nov 5 22:41:22 BRST 2012
Daqui a 1 semana:
date --date='1 week'
Sáb Nov 10 22:42:37 BRST 2012
Daqui a 1 mês e daqui a 2 meses:
date --date='1 month'
Seg Dez 3 22:43:22 BRST 2012
date --date="2 months"
Qui Jan 3 22:44:03 BRST 2013
Daqui a 4 anos:
date --date="4 years"
Qui Nov 3 22:44:37 BRST 2016
Se quiser saber na próxima terça-feira (detalhe que fica em 00:00:00, pois é terça desde a zero hora):
date --date='this tuesday'
Ter Nov 6 00:00:00 BRST 2012
E por fim uma combinação de parâmetros:
date --date="5 years 10 months 1 day 40 seconds"
Ter Set 4 21:50:32 BRT 2018
Agora as várias maneiras de apresentar datas passadas.
Pouco provável que quisesse saber, mas para alguma aplicação pode ser útil saber de 30 segundos passados:
date --date='30 seconds ago'
Sáb Nov 3 22:50:02 BRST 2012
Para saber de ontem:
date --date="yesterday"
Sex Nov 2 22:51:08 BRST 2012
Ou:
date --date="1 day ago"
Sex Nov 2 22:51:36 BRST 2012
Que tal 10 dias passados:
date --date="10 days ago"
Qua Out 24 22:52:33 BRST 2012
E nove meses passados seria:
date --date="9 months ago"
Sex Fev 3 22:53:10 BRST 2012
Será que houve prescrição? Para ver a data 10 anos antes:
date --date="10 years ago"
Dom Nov 3 22:53:49 BRST 2002
E agora aquela combinação de parâmetros:
date --date="5 years ago 10 months ago 1 day ago 40 seconds ago"
Ter Jan 2 22:54:05 BRST 2007
Como podem notar em momentos uso expressões no singular, outras no plural, por vezes uso as aspas e outras o apóstrofo. O que eu quis mostrar é que independe, posso usar 10 days ou 10 day e o resultado será o mesmo, assim como se usar "1 month" ou '1 month' também se obtém o mesmo resultado.
Obs.: Podem ver pela evolução do horário nos exemplos que fui executando no terminal e passando para a dica aqui.
Fontes: