linux + adicionar X dias para data e obter nova data virtual

95

Eu tenho uma máquina Linux (RH 5.3)

Eu preciso adicionar / calcular 10 dias mais a data para que eu tenha uma nova data (data de validade)

por exemplo

 # date 
 Sun Sep 11 07:59:16 IST 2012

Então eu preciso pegar

     NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012

Por favor, informe como calcular a nova data de vencimento (com o comando bash, ksh ou manipulate date?)

    
por emaillenin 23.09.2012 / 09:06

3 respostas

131

Você pode usar a opção -d e fornecer uma data para ser calculada

date
Sun Sep 23 08:19:56 BST 2012
NEW_expration_DATE=$(date -d "+10 days")
echo $NEW_expration_DATE
Wed Oct 3 08:12:33 BST 2012 
  -d, --date=STRING
          display time described by STRING, not ‘now’

Esta é uma ferramenta bastante poderosa, pois você pode fazer coisas como

date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 03:29:16 BST 2012

ou

TZ=IST date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 07:59:16 IST 2012

ou

prog_end_date='date '+%C%y%m%d' -d "$end_date+10 days"'

Então, se $ end_date = 20131001, então $ prog_end_date = 20131011

    
por 23.09.2012 / 09:12
28

Você pode usar "+ x dias" como string de formato:

$ date -d "+10 days"
    
por 23.09.2012 / 09:12
17
$ date -v -1d

Para obter uma data de retorno de 1 dia usando o comando date:

$ date -v -1d

Isso dará (data atual -1) significa 1 dia antes.

$ date -v +1d

Isso dará (data atual +1) significa 1 dia depois.

Da mesma forma abaixo do código escrito pode ser usado no lugar de "d" para descobrir ano, mês, etc.

y-Year
m-Month 
w-Week 
d-Day 
H-Hour 
M-Minute  
S-Second
    
por 24.04.2014 / 14:20