Respuestas:
Aqui tienes:
date +%Y%m%d%H%M%S
Como man date
dice cerca de la parte superior, puede usar el date
comando de esta manera:
date [OPTION]... [+FORMAT]
Es decir, puede darle un parámetro de formato, comenzando con un +
. Probablemente puedas adivinar el significado de los símbolos de formato que utilicé:
%Y
es por año%m
es por mes%d
es por diaPuede encontrar este y otros símbolos de formato en man date
.
Si está usando Bash, también puede usar uno de los siguientes comandos:
printf '%(%Y%m%d%H%M%S)T' # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1 # same as above
printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
Puede usar la opción -v varname
para almacenar el resultado en $varname
lugar de imprimirlo en la salida estándar:
printf -v varname '%(%Y%m%d%H%M%S)T'
Si bien el comando de fecha siempre se ejecutará en una subcapa (es decir, en un proceso separado), printf es un comando incorporado y, por lo tanto, será más rápido.
%
opciones que puede pasar, esto parece estar usando el date
comando. Entonces, man date
le dará las opciones disponibles.
Forma interesante / divertida de hacer esto usando la expansión de parámetros (requiere bash 4.4
o más reciente):
${parameter@operator} - P operator
La expansión es una cadena que es el resultado de expandir el valor del parámetro como si fuera una cadena de solicitud.
$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
"`date +%Y-%m-%d %H:%M:%S`"
me da undate: illegal time format