O date
comando emite a data e hora atual como este: 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, o seguinte: date "+%Y-%m-%dT%H:%M:%S%:z"
que fornece algo como 2013-04-12T15:04:37+00:00
.
Mas eu quero saber o que o %Y
, %m
, %d
, %H
, %M
, %S
, etc. são chamados coletivamente (ou seja, a terminologia). Além disso, como é T
chamado, pois é diferente do resto?
date
terminology
sou eu
fonte
fonte
date
E o“ T ”é apenas um“ T ”literal.%Y
significado e ao respectivo significado.date +"You will die in the year %Y"
T
não sendo especial. Além disso, eu estava tendo um dia estranho no trabalho quando digitei isso (ouvindo as conversas dos colegas de trabalho).Respostas:
O termo usado na especificação POSIX do
date
comando é "especificações de conversão".A string de formato para o
date
comando é intimamente baseada na string de formato daprintf
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 do histórico de alterações da descrição do POSIX de
date
:Aparentemente, uma versão anterior da especificação usou a frase "descritores de campo", mas "especificações de conversão" é o termo oficial atual.
Claro que isso não significa que você precise se referir a eles dessa maneira.
fonte
conversion sequences
" ou "format sequences
" também são adequados? Estou pensando emsequences
maisspecifications
porque é realmente mencionado na página de manual paradate
.Eu pensaria que "seqüências de escape" ou (nesse caso) "caracteres especiais para sequências de escape percentual" seriam a maneira típica de se referir a elas. As seqüências de barra invertida e de escape percentual são muito usadas em C (por exemplo, printf), portanto elas também foram filtradas em vários comandos do Unix (como especificar o prompt do shell).
A "sequência de escape" é "% Y", "% m", "% d" e assim por diante; e os "caracteres especiais" sendo "Y", "m", "d" e assim por diante. "%" seria o "caractere de escape" (o caractere que atribui ao caractere a seguir um significado incomum / especial).
fonte
Este documento do Centro de Informações do IBM afirma claramente que os alfabetos em
%Y
,%m
,%d
,%H
,%M
,%S
, etc. são chamados de " descritores de campo ".Isso responde às minhas duas perguntas (sobre% n & T). E acredito que isso seja o mais autoritário possível.
fonte
date
comando; o que torna sua documentação autoritativa? O comportamento do comando é atualmente definido pelo POSIX, que não usa esse termo. O histórico de alterações na parte inferior da descrição do POSIX indica "A DESCRIÇÃO é atualizada para se referir às especificações de conversão, em vez de descritores de campo para consistência com a categoria LC_TIME.", Implicando que "especificação de conversão", não "diescriptor de campo" está correta termo atual. Veja também minha resposta atualizada.Como outros já declararam, a
T
carta é literalT
. Mas, para ser específico, seu exemplodate "+%Y-%m-%dT%H:%M:%S%:z"
parece ser uma sequência de formatos em conformidade com a especificação ISO-8601 para data e hora. Então, aquiT
está um delimitador que separa a data da hora.fonte