date
Команда выводит текущую дату и время , как это: Fri Apr 12 15:04:03 UTC 2013
.
Чтобы получить дату и время вывода в произвольном формате, мы можем использовать date +FORMAT
, например, вот так: date "+%Y-%m-%dT%H:%M:%S%:z"
что дает что-то вроде 2013-04-12T15:04:37+00:00
.
Но я хочу знать , что %Y
, %m
, %d
, %H
, %M
, %S
и т.д. , все вместе называются (т.е. терминология). Кроме того, как T
называется, так как он отличается от остальных?
date
terminology
это я
источник
источник
date
А« Т »- это просто буквальное« Т ».%Y
их значению, так и к ним.date +"You will die in the year %Y"
T
не особенное. Кроме того, у меня был странный день на работе, когда я печатал это (слушая разговоры коллег).Ответы:
В спецификации команды POSIX используется термин
date
«спецификации преобразования».Строка формата для
date
команды тесно связана с строкой формата дляprintf
функции C ; Стандарт C также относится к таким вещам,%d
как «спецификации преобразования».T
перед ним не%
стоит просто символ: «Все остальные символы должны быть скопированы на выход без изменений».Согласно разделу истории изменений описания POSIX
date
:Таким образом, очевидно, что более ранняя версия спецификации использовала фразу «дескрипторы полей», но «спецификации преобразования» - это текущий официальный термин.
Конечно, это не значит, что вы должны относиться к ним таким образом.
источник
conversion sequences
" или "format sequences
"? Я рассматриваюsequences
болееspecifications
потому , что это на самом деле упоминается в странице руководстваdate
.Я думаю, что «escape-последовательности» или (в данном случае) «специальные символы для процентно-экранированных последовательностей» будут типичным способом обращения к ним. Последовательности с обратной косой чертой и процентами экранирования широко используются в C (например, printf), поэтому они также отфильтрованы по нескольким Unix-командам (например, указание приглашения для оболочки).
"Escape-последовательность": "% Y", "% m", "% d" и т. Д .; и «специальные символы» - «Y», «m», «d» и так далее. «%» будет «escape-символом» (символ, который придает следующему символу необычное / особое значение).
источник
Этот документ из информационного центра IBM четко сказано , что алфавиты в
%Y
,%m
,%d
,%H
,%M
,%S
и т.д., называются « Поле дескрипторы ».Это отвечает на два моих вопроса (о% n & T). И я считаю, что это настолько авторитетно, насколько это возможно.
источник
date
команду; что делает их документацию авторитетной? Поведение команды в настоящее время определяется POSIX, который не использует этот термин. История изменений в нижней части описания POSIX гласит: «ОПИСАНИЕ обновлено для ссылки на спецификации преобразования, а не на дескрипторы полей для согласованности с категорией LC_TIME.», Подразумевая, что «спецификация преобразования», а не «дескриптор поля», является правильной текущий срок. Смотрите также мой обновленный ответ.Как утверждают другие,
T
это буквальное письмоT
. Но, если быть точным, ваш примерdate "+%Y-%m-%dT%H:%M:%S%:z"
выглядит как строка формата, соответствующая спецификации ISO-8601 для даты и времени. Итак, здесьT
есть разделитель, который отделяет дату от времени.источник