Introducción
El date
muestra o establece la fecha del sistema. Se utiliza más comúnmente para imprimir la fecha y la hora en diferentes formatos y calcular fechas pasadas y futuras.
En este tutorial, cubriremos los conceptos básicos del comando dado.
Usando el comando de fecha de Linux
La sintaxis del date
es la siguiente:
date [OPTION]... [+FORMAT]
Para mostrar la fecha y hora actual del sistema con el formato predeterminado, invoque el comando sin opciones:
date
La salida incluirá el día de la semana, el mes, el día del mes, la hora, la zona horaria y el año:
Sat Jun 3 12:21:45 CEST 2019
Opciones de formato de fecha
date
salida de fecha se puede formatear con una secuencia de caracteres de control de formato precedidos por un signo +
Los controles de formato comienzan con el %
y se reemplazan por sus valores.
date +"Year: %Y, Month: %m, Day: %d"
El %Y
se sustituirá por el año, %m
por el mes y %d
por el día del mes:
Year: 2019, Month: 05, Day: 03
Aquí hay otro ejemplo:
date "+DATE: %D%nTIME: %T"
DATE: 05/03/19
TIME: 02:32:12
A continuación se muestra una pequeña lista de algunos de los caracteres de formato más comunes:
%a
: nombre abreviado del día de la semana de la configuración regional (p. ej., lunes)%A
: nombre del día de la semana abreviado completo del lugar (p. Ej., Lunes)%b
: nombre del mes abreviado de la configuración regional (p. ej., enero)%B
: nombre corto del mes largo de la configuración regional (por ejemplo, enero)%d
: día del mes (p. ej., 01)%H
- Tiempo (00..23)%I
- Tiempo (01..12)%j
- Día del año (001..366)%m
- Mes (01..12)%M
- Minutos (00..59)%S
- Segundo (00..60)%u
- Día de la semana (1..7)%Y
: año completo (por ejemplo, 2019)
Para obtener una lista completa de todas las opciones de formato, ejecute date --help
o man date
en la terminal.
La -d
permite operar en una fecha específica. Puede especificar la fecha como una cadena de fecha legible por humanos como se muestra a continuación:
date -d "2010-02-07 12:10:53"
Sun Feb 7 12:10:53 CET 2010
Usando formato personalizado:
date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974
La cadena de fecha también puede aceptar valores como "mañana", "viernes", "viernes pasado", "viernes próximo", "mes próximo", "semana próxima"... etc.
date -d "last week"
Sat May 22 10:06:22 CEST 2019
También puede usar la opción de cadena de fecha para mostrar la hora local para diferentes zonas horarias. Por ejemplo, para mostrar la hora local a las 6:30 a. M. Del próximo lunes en la costa este de Australia, escriba:
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun 22 10:06:22 CEST 2019
Reemplazar la zona horaria
El date
usa la zona horaria predeterminada del sistema. Para utilizar una zona horaria diferente, configure la TZ
en la zona horaria deseada.
Por ejemplo, para mostrar la hora de Melbourne, Aus, escriba:
TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019
Para enumerar todas las zonas horarias disponibles, puede enumerar los archivos en el /usr/share/zoneinfo
o usar el timedatectl list-timezones
.
Convertidor de época
El date
se puede utilizar como un convertidor de época. Epoch, o marca de tiempo de Unix, es el número de segundos transcurridos desde el 1 de enero de 1970 hasta las 00:00:00 UTC.
Para imprimir el número de segundos desde la época hasta el día actual, use el control de formato %s
date +%s
1575037004
Para convertir los segundos de la época a hoy, configure los segundos como una cadena de fecha con el prefijo @
date -d @1575037004
ven 29 nov 2019, 15:16:44, CET
Usar fecha con otros comandos
El date
se usa con mayor frecuencia para crear nombres de archivos que contienen la fecha y hora actuales.
El siguiente comando creará un archivo de respaldo de Mysql en el siguiente formato database_name-20190601.sql
mysqldump database_name > database_name-$(date +%Y%m%d).sql
También puede utilizar el date
en scripts de shell. En el siguiente ejemplo, estamos asignando la salida de date
a la variable date_now
date_now=$(date "+%F-%H-%M-%S")
echo $date_now
2019-06-01-15-02-27
Ver la hora en que se modificó por última vez un archivo
El comando de date
-r
muestra la última hora de modificación de un archivo. Por ejemplo:
date -r /etc/hosts
mar 19 nov 2019, 10:12:12, CET
Si desea editar el archivo de marca de tiempo, use el comando touch
Establecer la fecha y hora del sistema
Por lo general, no se recomienda configurar manualmente la hora y fecha del sistema con el date
ya que en la mayoría de las distribuciones de Linux el reloj del sistema se sincroniza mediante los servicios ntp
o systemd-timesyncd
.
Sin embargo, si desea configurar manualmente el reloj del sistema, puede usar la opción --set=
Por ejemplo, si desea establecer la fecha y la hora a las 17:30 del 1 de junio de 2019, escriba:
date --set="20190601 17:30"
Conclusión
A estas alturas, debería tener un buen conocimiento de cómo usar el comando date de Linux.