Cómo mostrar la fecha y la hora en la terminal de Linux (y usarla en scripts Bash)

Contenidos

Bash shell en el concepto de escritorio Unity

los date El comando se encuentra en el shell Bash, que es el shell predeterminado en la mayoría de las distribuciones de Linux e incluso en macOS. Este tutorial le muestra cómo dominar date en la línea de comandos y cómo puede usarlo en scripts de shell para hacer más que simplemente imprimir la hora.

Ejecutar el date comando para ver esta información. Imprime la fecha y hora actuales para su zona horaria:

date

Salida del comando de fecha

El formato predeterminado parece un poco ridículo. ¿Por qué el año no se imprime después del mes y el día, en lugar de estar etiquetado al final, detrás de la zona horaria? No temas: si lo que quieres es controlar el formato de la salida, date lo entrega con creces. Hay más de 40 opciones a las que puedes pasar date para indicarle que formatee su salida exactamente como le gustaría.

Para utilizar cualquiera de las opciones, escriba date, un espacio, un signo más +, y la opción incluso el signo de porcentaje principal. los %c (datos y hora en formato de configuración regional) hace que la fecha y la hora se impriman en el formato normalizado asociado con su configuración regional. Su configuración regional está determinada por la información geográfica y cultural que proporcionó cuando instaló su sistema operativo. El lugar gobierna cosas como el símbolo de la moneda, el tamaño del papel, la zona horaria y otras normas culturales.

date +%c

Salida del comando de fecha con la opción c

El año aparece ahora en una posición más natural en la producción.

Puede pasar varias opciones a date En seguida. Una secuencia de opciones se denomina cadena de formato. Para ver el nombre del día (%A), el día del mes (%d) y el nombre del mes (%B), use este comando:

date +%A%d%B

Salida del comando de fecha con opciones A d B

Eso funcionó, pero es feo. No hay problema, podemos incluir espacios siempre que envuelva toda la cadena de formato entre comillas. Tenga en cuenta que el + va fuera de las comillas.

date +"%A %d %B"

Salida del comando de fecha con la opción A d B con espacios

Puede agregar texto a la cadena de formato, así:

date +"Today is: %A %d %B"

Salida del comando de datos con texto agregado por el usuario

Desplazarse hacia arriba y hacia abajo a través del date página man buscar la opción que desea pronto se vuelve tedioso. Hemos dividido las opciones en grupos para ayudarlo a orientarse más fácilmente.

Opciones para mostrar la fecha y la hora

  • %C: Imprime la fecha y la hora en el formato de su configuración regional, incluida la zona horaria.

Salida del comando de fecha

Opciones para mostrar la fecha

  • %D: Imprime la fecha en formato mm / dd / aa.
  • %F: Imprime la fecha en formato aaaa-mm-dd.
  • %X: Imprime la fecha en el formato de su localidad.

Salida del comando de fecha con opciones DF x

Opciones para mostrar el día

  • %a: Imprime el nombre del día, abreviado como Lun, Mar, Mié, etc.
  • %A: Imprime el nombre completo del día, lunes martes, miércoles, etc.
  • % u: Imprime el número del día de la semana, donde lunes = 1, martes = 2, miércoles = 3, etc.
  • % w: Imprime el número del día de la semana, donde domingo = 0, lunes = 1, martes = 2, etc.
  • %D: Imprime el día del mes, con un cero a la izquierda (01, 02… 09) si es necesario.
  • %mi: Imprime el día del mes, con un espacio inicial (‘1’, ‘2’… ‘9’) si es necesario. Tenga en cuenta que los apóstrofos no se imprimen.
  • % j: Imprime el día del año, con hasta dos ceros iniciales, si es necesario.

Salida del comando de fecha con opciones A uwdej

Opciones para mostrar la semana

  • % U: Imprime el número de semana del año, considerando el domingo como el primer día de la semana. Por ejemplo, la tercera semana del año, la vigésima semana del año, etc.
  • % V: Imprime el número de semana ISO del año, considerando el lunes como el primer día de la semana.
  • % W: Número de semana del año, considerando el lunes como primer día de la semana.

Salida del comando de fecha con opciones UVW

Opciones para mostrar el mes

  • %B o % h: Imprime el nombre del mes abreviado como enero, febrero, marzo, etc.
  • %B: imprime el nombre completo del mes, enero, febrero, marzo, etc.
  • %metro: Imprime el número del mes, con un cero a la izquierda si es necesario 01, 02, 03… 12.

Salida del comando de fecha con opciones bh B m

Opciones para mostrar el año

  • %C: Imprime el siglo sin el año. En 2019 imprimiría 20.
  • % y: Imprime el año como dos dígitos. en 2019 imprimirá 19.
  • % Y: Imprime el año con cuatro dígitos.

Salida del comando de fecha con opciones C y Y

Opciones para mostrar la hora

  • % T: Imprime la hora como HH: MM: SS.
  • % R: Imprime la hora y los minutos como HH: MM sin segundos, utilizando el reloj de 24 horas.
  • % r: Imprime la hora según su ubicación, utilizando el reloj de 12 horas y un indicador de am o pm.
  • %X: Imprime la hora de acuerdo con su ubicación, utilizando el reloj de 24 horas. Presuntamente. Tenga en cuenta que durante la prueba esta opción se comportó exactamente como %r hace, como se muestra a continuación. En una máquina Linux configurada para la configuración regional del Reino Unido y configurada en GMT, imprimió la hora, utilizando el reloj de 24 horas sin indicador AM o PM, como se esperaba.

Salida del comando de fecha con opciones TR r X

Opciones para mostrar la hora

  • % H: Imprime la hora 00, 01, 02… 23.
  • %I: Imprime la hora utilizando el reloj de 12 horas, 00, 01, 02… 12, con un cero a la izquierda si es necesario.

Salida del comando de fecha con opciones HI

Opciones para mostrar minutos

  • %METRO: imprime el minuto, 01, 02, 03… 59, con un cero a la izquierda si es necesario.

Salida del comando de fecha con opciones M

Opciones para mostrar segundos

  • %s: Imprime el número de segundos desde 1970-01-01 00:00:00, el inicio de la Época Unix.
  • %S: Imprime los segundos, 01, 02, 03… 59, con un cero a la izquierda si es necesario.
  • %NORTE: Imprime los nanosegundos.

Salida del comando de fecha con opciones s SN

Opciones para mostrar información de zona horaria

  • % z: Imprime la diferencia horaria entre su zona horaria y UTC.
  • %: z: Imprime la diferencia horaria entre su zona horaria y UTC, con un: entre las horas y los minutos. Nota la : Entre los % firmar y z .
  • % :: z: Imprime la diferencia horaria entre su zona horaria y UTC, con un: entre las horas, los minutos y los segundos. Nota la :: Entre los % firmar y z .
  • % Z: Imprime el nombre alfabético de la zona horaria.

Salida del comando de fecha con opciones de zona horaria

Opciones relacionadas con el formato

  • %pag: Imprime el indicador AM o PM en mayúsculas.
  • %PAG: Imprime el indicador am o pm en minúsculas. Tenga en cuenta la peculiaridad de estas dos opciones. Una minúscula p da salida en mayúsculas, una mayúscula P da salida en minúsculas.
  • % t: Imprime una pestaña.
  • %norte: Imprime una nueva línea.

Salida del comando de fecha con indicador AM PM y opciones de formato

Opciones para modificar otras opciones

Estos modificadores se pueden insertar entre los % y la letra de opción de otras opciones para modificar su visualización. Por ejemplo, %-S eliminaría el cero a la izquierda para valores de segundos de un solo dígito.

  • : Un solo guion evita el relleno de ceros en valores de un solo dígito.
  • _: un guión bajo simple agrega espacios iniciales para valores de un solo dígito.
  • 0: Proporciona ceros a la izquierda para valores de un solo dígito.
  • ^: Utiliza mayúsculas, si es posible (no todas las opciones respetan este modificador).
  • #: Utilice el caso opuesto al predeterminado para la opción, si es posible (no todas las opciones respetan este modificador).

Salida del comando de fecha con opciones de formato

Dos trucos más ingeniosos

Para obtener la última hora de modificación de un archivo, utilice el -r (referencia) opción. Tenga en cuenta que esto usa un - (guión) en lugar de un % firmar, y no requiere un + firmar. Pruebe este comando en su carpeta de inicio:

date -r .bashrc

Salida del comando de fecha con opción de hora de modificación de archivo

La configuración de TZ le permite cambiar su zona horaria durante la duración de un solo comando.

TZ=GMT date +%c

Salida del comando de fecha para una zona horaria diferente

Uso de la fecha en los scripts

Habilitar un script de shell Bash para imprimir la hora y la fecha es trivial. Cree un archivo de texto con el siguiente contenido y guárdelo como gd.sh.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Escriba el siguiente comando para establecer los permisos de ejecución y hacer que el script sea ejecutable.

chmod +x gd.sh

Ejecute el script con este comando:

./gd.sh

Salida del script gd.sh

Podemos usar el comando date para proporcionar una marca de tiempo. El script que se muestra creará un directorio con la marca de tiempo como su nombre. Luego copiará todos los archivos de texto de la carpeta actual en él. Al ejecutar este script periódicamente, podemos tomar una instantánea de nuestros archivos de texto. Con el tiempo, crearemos una serie de carpetas con diferentes versiones de nuestros archivos de texto.

Tenga en cuenta que este no es un sistema de copia de seguridad sólido, es solo para fines ilustrativos.

Cree un archivo de texto con el siguiente contenido y guárdelo como snapshot.sh.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +"%F-%H-%M-%S")

# make a directory with that name
mkdir "$date_stamp"

# copy the files from the current folder into it
cp *.txt "$date_stamp"

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

Escriba el siguiente comando para establecer los permisos de ejecución y hacer que el script sea ejecutable.

chmod +x snapshot.sh

Ejecute el script con este comando:

./snapshot.sh

Efecto de ejecutar el script snapshot.sh

Verá que se ha creado un directorio. Su nombre es la fecha y hora en que se ejecutó el script. Dentro de ese directorio hay copias de los archivos de texto.

Con un poco de pensamiento y creatividad, incluso los humildes date El comando se puede utilizar de forma productiva.

setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.