Command 'date + FORMAT' – Что такое% a,% A,% b и т. Д.?

Команда 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 , поскольку он отличается от остальных?

Термин, используемый в спецификации POSIX команды date – это «спецификации преобразования».

Строка формата для команды date тесно связана с строкой формата для printf C; стандарт C также относится к таким вещам, как %d как «спецификации преобразования».

T которому не предшествует % является только символ: «Все остальные символы должны быть скопированы на выход без изменений».

Согласно разделу истории изменений описания POSIX date :

ОПИСАНИЕ обновляется, чтобы ссылаться на спецификации преобразования, а не на дескрипторы полей для согласованности с категорией LC_TIME.

Таким образом, по-видимому, в более ранней версии спецификации использовалась фраза «дескрипторы полей», но «спецификация преобразования» является текущим официальным термином.

Конечно, это не значит, что вы должны обращаться к ним именно так.

Я бы подумал, что «escape-последовательности» или (в данном случае) «специальные символы для процентных экранов» будут типичным способом обращения к ним. Косы с обратным слэшем и процентные экраны очень часто используются в C (например, printf), поэтому они также фильтруются в несколько Unix-команд (например, указывая приглашение для оболочки).

«Escape-последовательность» – «% Y», «% m», «% d» и т. Д .; и «специальные символы» – «Y», «m», «d» и т. д. «%» будет «escape-символом» (персонажем, который придает следующему персонажу необычный / особый смысл).

В этом документе из Информационного центра IBM четко указано, что алфавиты в %Y , %m , %d , %H , %M , %S и т. Д. Называются « дескрипторы полей ».

Перед каждым дескриптором поля должен стоять знак % (знак процента). Система заменяет дескриптор поля заданным значением. […] Команда date копирует любые другие символы на выход без изменений.

Это отвечает на мои два вопроса (около% n & T). И я считаю, что это так же авторитетно, как может.

Как утверждали другие, T – буква буква T Но, если быть конкретным, ваша примерная date "+%Y-%m-%dT%H:%M:%S%:z" выглядит как строка формата, соответствующая спецификации ISO-8601 для даты и времени. Итак, здесь T является разделителем, который отделяет дату от времени.