
O date
comando exibe a data e hora atuais assim: Fri Apr 12 15:04:03 UTC 2013
.
Para ter a data e hora de saída em um formato personalizado, podemos usar date +FORMAT
, por exemplo, assim: date "+%Y-%m-%dT%H:%M:%S%:z"
que fornece algo como 2013-04-12T15:04:37+00:00
.
Mas eu quero saber como %Y
, %m
, %d
, %H
, %M
, %S
, etc. são chamados coletivamente (ou seja, a terminologia). Além disso, como é T
chamado, já que é diferente dos demais?
Responder1
O termo usado na especificação POSIX dodate
comando é "especificações de conversão".
A string de formato do date
comando é baseada na string de formato da printf
função C; o padrão C também se refere a coisas como %d
"especificações de conversão".
T
não precedido por %
é apenas um caractere: "Todos os outros caracteres devem ser copiados para a saída sem alterações."
De acordo com a seção de histórico de alterações da descrição POSIX de date
:
O DESCRIPTION é atualizado para fazer referência às especificações de conversão, em vez de descritores de campo para consistência com a categoria LC_TIME.
Aparentemente, uma versão anterior da especificação usava a frase "descritores de campo", mas "especificações de conversão" é o termo oficial atual.
Claro que isso não significa que vocêterreferir-se a eles dessa maneira.
Responder2
Eu pensaria que "sequências de escape" ou (neste caso) "caracteres especiais para sequências de escape percentual" seriam a maneira típica de se referir a eles. Sequências com barras invertidas e escape percentual são muito usadas em C (por exemplo, printf), portanto elas também foram filtradas em vários comandos Unix (como especificar o prompt para o shell).
A "sequência de escape" é "%Y", "%m", "%d" e assim por diante; e os "caracteres especiais" são "Y", "m", "d" e assim por diante. "%" seria o "caractere de escape" (o caractere que dá ao caractere seguinte um significado incomum/especial).
Responder3
Esse documentodo Centro de Informações da IBM afirma claramente queos alfabetosem %Y
, %m
, %d
, %H
, %M
, %S
, etc. são chamados de "Descritores de Campo".
Você deve preceder cadadescritor de campocom um%(sinal de porcentagem). O sistema substitui o descritor de campo pelo valor especificado. [...] O
date
comando copia quaisquer outros caracteres para a saída sem alterações.
Isso responde às minhas duas perguntas (sobre% n & T). E acredito que isso seja o mais confiável possível.
Responder4
Como outros afirmaram, the T
é uma letra literal T
. Mas, para ser mais específico, seu exemplo date "+%Y-%m-%dT%H:%M:%S%:z"
parece ser uma string de formato em conformidade com oISO-8601especificação de data e hora. Então aqui T
está um delimitador que separa a data da hora.