Respuestas:
Es una forma de expresar el tiempo formateado por printf
.
El formato es:
%(FORMAT)T
Donde FORMAT
se define por strftime(3)
.
Entonces, para obtener el tiempo de la época (Tiempo en segundos desde 1970-01-01 00:00:00 UTC), necesitamos strftime(3)
formato %s
:
printf "%(%s)T\n"
Tenga en cuenta que también necesita \n
al final agregar una nueva línea ya que printf
(a diferencia de echo
) no la agrega de manera predeterminada.
Ejemplo:
$ 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
Solo en aras de la exhaustividad, también puede usar el date
comando de forma similar strftime(3)
para obtener el tiempo:
$ 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
NOTA : Este comportamiento es específico bash
's y ksh
que está incorporado en la función printf
, y no funciona con /usr/bin/printf
, csh
y zsh
muebles empotrados.
printf(1)
página del manual.
printf
está incorporado aquí (aunque el externo tiene el mismo comportamiento) ... verifique help printf
...
printf
Eres un constructor?/usr/bin/printf
en Ubuntu 14.04 da un error:printf: %(: invalid conversion specification
. Si lo estas usandobash
. Pruebaman bash
con la documentación integrada.