
이 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
나머지와 달라서 뭐라고 부르나요?
답변1
POSIX 사양에서 사용되는 용어date
명령은 "변환 사양"입니다.
명령 의 형식 문자열은 date
C printf
함수의 형식 문자열을 기반으로 합니다. C 표준에서는 %d
"변환 사양"과 같은 것도 참조합니다.
T
앞에는 %
문자가 없습니다. "다른 모든 문자는 변경 없이 출력에 복사됩니다."
POSIX 설명의 변경 기록 섹션에 따르면 다음과 같습니다 date
.
DESCRIPTION은 LC_TIME 범주와의 일관성을 위해 필드 설명자 대신 변환 사양을 참조하도록 업데이트되었습니다.
따라서 사양의 이전 버전에서는 "필드 설명자"라는 문구를 사용했지만 현재 공식 용어는 "변환 사양"입니다.
물론 그게 당신을 뜻하는 건 아니죠가지다그런 식으로 언급하는 것입니다.
답변2
나는 "이스케이프 시퀀스" 또는 (이 경우) "퍼센트 이스케이프 시퀀스의 특수 문자"가 이를 참조하는 일반적인 방법이라고 생각합니다. 백슬래시 및 퍼센트 이스케이프 시퀀스는 C(예: printf)에서 많이 사용되므로 여러 Unix 명령에도 필터링되었습니다(예: 셸에 대한 프롬프트 지정).
"이스케이프 시퀀스"는 "%Y", "%m", "%d" 등입니다. "특수 문자"는 "Y", "m", "d" 등입니다. "%"는 "이스케이프 문자"(다음 문자에 특이한/특별한 의미를 부여하는 문자)입니다.
답변3
이 문서IBM 정보 센터에서는 다음과 같이 명확하게 말합니다.알파벳%Y
, %m
, %d
, %H
, %M
, 등에서 %S
는 "필드 설명자".
각각 앞에 와야 합니다.필드 설명자와%(퍼센트 기호). 시스템은 필드 설명자를 지정된 값으로 바꿉니다. [...] 이
date
명령은 다른 문자를 변경하지 않고 출력에 복사합니다.
이것이 내 두 가지 질문(%n & T에 대한)에 대한 답변입니다. 그리고 나는 이것이 가능한 한 권위 있다고 믿습니다.
답변4
다른 사람들이 언급했듯이 T
문자 그대로의 편지입니다 T
. 그러나 구체적으로 말하면 귀하의 예 date "+%Y-%m-%dT%H:%M:%S%:z"
는ISO-8601날짜 및 시간 지정. 따라서 여기에 T
날짜와 시간을 구분하는 구분 기호가 있습니다.