Linux

¿Cómo mostrar la fecha y la hora en un terminal Linux?


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

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

date

Linux

El formato por defecto parece un poco tonto pero así es Linux a veces. ¿Por qué no se imprime el año después del mes y el día, en lugar de ser etiquetado al final, detrás de la zona horaria? No tenga miedo: Si es el control sobre el formato de la salida que desea, la fecha lo entrega en picas. Hay más de 40 opciones que puedes pasar hasta la fecha para indicarle que formatee su salida exactamente como te gustaría.

Para utilizar cualquiera de las opciones, escriba la fecha, un espacio, un signo más + y la opción que incluya el signo de porcentaje principal. La opción %c (datos y hora en formato locale) hace que la fecha y la hora se impriman en el formato normalizado asociado a su localización.

Establecer la ubicación en Linux

Su ubicación se establece por la información geográfica y cultural que proporcionó cuando instaló el sistema operativo. El local gobierna cosas tales como el símbolo de la moneda, los tamaños de papel, la zona horaria y otras normas culturales que son importantes para Linux.

date +%c

Linux

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

Puede pasar varias opciones hasta la fecha a la vez. 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), utilice este comando:

date +%A%d%B

Linux

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

date +"%A %d %B"

Linux

Puede añadir texto a la cadena de formato, de esta forma:

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

Linux

Desplazarse hacia arriba y hacia abajo a través de la página del hombre de la fecha buscando la opción que desea pronto se convierte en un fastidio. Hemos agrupado las opciones en grupos para ayudarle a encontrar su camino más fácilmente.

Opciones para mostrar la fecha y la hora

%c: Imprime la fecha y la hora en el formato de su local, incluyendo la zona horaria.

Opciones para mostrar la fecha

%D: Imprime la fecha en formato mm/dd/aaa.
%F: Imprime la fecha en formato aaaaa-mm-dd.
%x: Imprime la fecha en el formato de su localización.

Opciones para mostrar el día

%a: Imprime el nombre del día, abreviado como Mon, Tue, Wed, 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.
%e: Imprime el día del mes, con un espacio en blanco (‘ 1’, ‘ 2’ … ‘ 9’) si es necesario. Note que los apóstrofes no se imprimen.
j: Imprime el día del año, con hasta dos ceros a la izquierda, si es necesario.

Opciones para visualizar 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 el primer día de la semana.

Opciones para mostrar el mes

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

Opciones para visualizar el año

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

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 de acuerdo a su localidad, usando el reloj de 12 horas y un indicador de am o pm.
%X: Imprime la hora de acuerdo a su localidad, usando el reloj de 24 horas.

Tenga en cuenta que durante la prueba esta opción se comportó exactamente igual que %r, como se muestra a continuación. En una máquina Linux configurada para el Reino Unido y ajustada a GMT, imprimió la hora, usando el reloj de 24 horas sin indicador de AM o PM, como se esperaba.

Opciones para mostrar la hora

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.

Opciones para mostrar los minutos

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

Opciones para mostrar segundos

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

Opciones para mostrar la información de la zona horaria

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

Opciones relacionadas con el formato

%p: Imprime el indicador AM o PM en mayúsculas.
%P: Imprime el indicador am o pm en minúsculas. Observe la rareza con estas dos opciones. Una p minúscula da salida en mayúsculas, una P mayúscula da salida en minúsculas.
%t: Imprime una ficha.
%n: Imprime una nueva línea.

Opciones para modificar otras opciones

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

–: Un guión simple evita que se rellene a cero en valores de un solo dígito.
Un guión bajo añade espacios para valores de un dígito.
0: Proporciona ceros a la izquierda para valores de un dígito.
^: Utiliza mayúsculas, si es posible (no todas las opciones respetan este modificador).

Use lo opuesto al caso por defecto para la opción, si es posible (no todas las opciones respetan este modificador).

Dos trucos más ingeniosos para hacer el proceso más sencillo

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

date -r .bashrc

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

Uso de la fecha en los scripts y Linux

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

Podemos usar el comando date para proporcionar una marca de tiempo. El script mostrado creará un directorio con la marca de tiempo como nombre.

A continuación, copiará todos los archivos de texto de la carpeta actual en ella. 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 en ellas.

No es un buen sistema de seguridad en Linux

Tenga en cuenta que este no es un sistema de copia de seguridad robusto, es sólo 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

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 el humilde comando de fecha puede ser utilizado de manera productiva.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.