El date
comando de salida a la fecha actual y la hora de esta manera: Fri Apr 12 15:04:03 UTC 2013
.
Para tener la fecha y hora de salida en un formato personalizado, podemos usar date +FORMAT
, por ejemplo, así: lo date "+%Y-%m-%dT%H:%M:%S%:z"
que da algo así 2013-04-12T15:04:37+00:00
.
Pero yo quiero saber lo que el %Y
, %m
, %d
, %H
, %M
, %S
, etc. son llamados colectivamente (es decir, la terminología). Además, ¿cómo se T
llama, ya que es diferente del resto?
date
terminology
soy yo
fuente
fuente
date
Y la" T "es solo una literal" T ".%Y
significado como al respectivo.date +"You will die in the year %Y"
T
no es especial. Además, estaba teniendo un día extraño en el trabajo cuando escribí eso (escuchando las conversaciones de los compañeros de trabajo).Respuestas:
El término utilizado en la especificación POSIX del
date
comando es "especificaciones de conversión".La cadena de formato para el
date
comando se basa estrechamente en la cadena de formato para laprintf
función de C ; el estándar C también se refiere a cosas%d
como "especificaciones de conversión".T
no precedido por%
es solo un carácter: "Todos los demás caracteres se copiarán a la salida sin cambios".De acuerdo con la sección del historial de cambios de la descripción POSIX de
date
:Aparentemente, una versión anterior de la especificación utilizaba la frase "descriptores de campo", pero "especificaciones de conversión" es el término oficial actual.
Por supuesto, eso no significa que tenga que referirse a ellos de esa manera.
fuente
conversion sequences
" o "format sequences
" términos apropiados también? Estoy considerandosequences
másspecifications
porque se trata en realidad menciona en la página del manualdate
.Creo que "secuencias de escape" o (en este caso) "caracteres especiales para secuencias de porcentaje de escape" sería la forma típica de referirse a ellas. Las secuencias de barra invertida y de porcentaje de escape se usan mucho en C (por ejemplo, printf), por lo que también se han filtrado en varios comandos de Unix (como especificar la solicitud para el shell).
La "secuencia de escape" es "% Y", "% m", "% d" y así sucesivamente; y los "caracteres especiales" son "Y", "m", "d" y así sucesivamente. "%" sería el "carácter de escape" (el carácter que le da al siguiente carácter un significado inusual / especial).
fuente
Este documento de Centro de información de IBM establece claramente que los alfabetos en
%Y
,%m
,%d
,%H
,%M
,%S
, etc. son llamados " descriptores de campo ".Eso responde a mis dos preguntas (sobre% n & T). Y creo que esto es tan autoritario como puede ser.
fuente
date
comando; ¿Qué hace que su documentación sea autoritativa? El comportamiento del comando está definido actualmente por POSIX, que no utiliza ese término. El historial de cambios en la parte inferior de la descripción POSIX dice "La DESCRIPCIÓN se actualiza para referirse a las especificaciones de conversión, en lugar de los descriptores de campo para mantener la coherencia con la categoría LC_TIME", lo que implica que "especificación de conversión", no "descriptor de campo" es el correcto término actual Vea también mi respuesta actualizada.Como otros han dicho, la
T
letra es literalT
. Pero para ser específicos, su ejemplodate "+%Y-%m-%dT%H:%M:%S%:z"
parece ser una cadena de formato conforme a la especificación ISO-8601 para fecha y hora. Así que aquíT
hay un delimitador que separa la fecha de la hora.fuente