Como devo fazer o comando date usar o mesmo formato que o rdiff-backup?

0

O comando rdiff-backup cria backups incrementais criando vários arquivos com marcas de data em seus títulos. Os carimbos de data são do formato definido na Nota W3 sobre data e hora , que são essencialmente:

Complete date plus hours, minutes and seconds:

YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)

Onde o T no meio é um literal 'T' para indicar que o tempo começa neste ponto.

Gostaria de poder espelhar este formato usando o comando date . Até agora eu tenho:

date '+%FT%T%:z'

O que funciona de maneira brilhante se eu estiver em qualquer fuso horário diferente de GMT / UTC, dando a saída no formato esperado.

Quando estiver no fuso horário GMT / UTC, a string de fuso horário no final deve ser exibida como a letra Z , em vez da atual +00:00 .

Tenho certeza de que poderia fazer isso obtendo a parte do fuso horário com um comando date separado e alterando-o se corresponder a +00: 00, ou usando algum tipo de expansão de parâmetro se salvar a string como uma variável ou talvez até usando tr . Existe uma maneira direta dentro das opções de comando date , se não como eu deveria conseguir isso simplesmente?

    
por Arronical 24.01.2017 / 14:40

1 resposta

1

Eu não acho que a data do GNU tenha alguma opção para imprimir Z em vez do fuso horário UTC. É fácil o suficiente com sed :

$ date '+%FT%T%:z'       
2017-01-24T14:06:39+00:00
$ date '+%FT%T%:z' | sed 's/+00:00$/Z/'                            
2017-01-24T14:07:52Z
    
por muru 24.01.2017 / 15:09