É uma maneira de expressar o tempo formatado em printf
.
O formato é:
%(FORMAT)T
Em que FORMAT
é definido por strftime(3)
.
Então, para obter o horário da época (Tempo em segundos desde 1970-01-01 00:00:00 UTC), precisamos de strftime(3)
format %s
:
printf "%(%s)T\n"
Observe que você também precisa de \n
no final para adicionar uma nova linha, já que printf
(ao contrário de echo
) não a adiciona por padrão.
Exemplo:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
Apenas por questão de integridade, você também pode usar o comando date
de maneira semelhante em strftime(3)
para obter o tempo:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
OBSERVAÇÃO : esse comportamento é específico da função incorporada bash
e ksh
printf
e não funciona com /usr/bin/printf
, csh
, e zsh
internos.