Veamos lo básico de este sencillo comando parte de las herramientas coreutils del sistema GNU, disponible en sistemas GNU/Linux
El comando date es una de las utilidades de coreutils, las herramientas básicas del sistema GNU. Al ejecutarlo en una terminal, simplemente nos muestra la fecha (el símbolo $ indica que el comando lo ejecuta un usuario normal sin privilegios de root):
$ date
jue ago 26 18:49:12 CEST 2021
Pero podemos adaptarlo a nuestros gustos, podemos integrarlo en scripts y también esconde alguna funcionalidad curiosa que quizás no conocías.
Con la información predeterminada que muestra es más que suficiente, pero podemos hacerla un poco más “amigable” añadiendo algo de texto a la salida del comando y jugando con los modificadores del propio comando.
Por ejemplo podemos añadir algo como esto al comando date:
$ date +"Hoy es %A, %d de %B de %Y %nEsta es la semana %V y han pasado %j días de este año %nSon las %R %:z %Z"
Hoy es jueves, 26 de agosto de 2021
Esta es la semana 34 y han pasado 238 días de este año
Son las 18:55 +02:00 CEST
Con el símbolo + y entre comillas podemos encerrar texto que queramos que se muestre. Como véis he modificado el formato propio mostrado para que muestre otras secuencias. En concreto he usado:
- %A el nombre local completo de la semana (p. ej., Domingo)
- %d el día del mes (p. ej., 01)
- %B el nombre local completo del mes (p. ej. Enero)
- %Y el año
- %n un salto de línea
- %V el número ISO de la semana del año con Lunes como primer día de la semana (01..53)
- %j el día del año (001..366)
- %R hora y minutos en formato 24 horas
- %:z zona horaria numérica en formato +hh:mm (p. ej., -04:00)
- %Z abreviatura alfabética de la zona horaria (p. ej., EDT)
Pero hay muchas otras secuencias que puedes utilizar para mostrar lo que desees. Simplemente ejecuta date --help para verlas todas.
Se me ocurre que podíamos crear un alias que se llamase “hoy” y ejecutase el comando date con ese formato para saber qué día y hora es.
$ alias hoy="date +\"Hoy es %A, %d de %B de %Y %nEsta es la semana %V y han pasado %j días de este año %nSon las %R %:z %Z\""
Cabe destacar que hay que “escapar” las comillas propias del comando date anteponiendo la barra invertida \
Ahora ya solo ejecutando hoy nos mostrará la fecha y hora en ese formato.
El comando date también puede mostrar el tiempo Unix (o Epoch time) la cantidad de segundos transcurridos desde el 1-1-1970
Y también podemos convertir esos segundos en una fecha, anteponiéndolos con el símbolo @
$ date -d "@1629998692"
jue ago 26 19:24:52 CEST 2021
Con date también podemos “viajar” al pasado y al futuro. Por ejemplo, podemos saber qué día de la semana era cuando nacimos, o qué día de la semana será dentro de un año (por ejemplo) gracias a la opción -d
Para saber el día de la semana que fue cuando nacimos (o cualquier otra fecha) ejecutaremos la consulta en formato año-mes-día:
$ date -d "1991-8-25"
dom ago 25 00:00:00 CEST 1991
Con esto sabemos que cuando Linus Torvalds anunció su pequeño proyecto a la lista de correo de Minix era un domingo de hace 30 años.
¿Y qué fecha será dentro de dos años?
$ date -d "2 years"
sáb ago 26 19:21:45 CEST 2023
O tal día como hoy hace dos años. Podemos utilizar seconds, minutes, days, months, years.
$ date -d "2 years ago"
lun ago 26 19:23:28 CEST 2019
Y ya por último, también podemos saber la fecha que fue modificado un archivo gracias a la opción -r
$ date -r /var/log/messages
jue ago 26 19:23:09 CEST 2021
Y con esto creo que es suficiente para aprender lo básico del comando, podéis echar un vistazo a la ayuda propia del comando donde encontraréis estos y más opciones.
¿Te ha parecido interesante? ¿Te gustarían más artículos similares? Comparte tu opinión en los comentarios.