'date + FORMAT'명령 — % a, % A, % b 등은 무엇입니까?


10

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다른 것과는 달리 소위 무엇 입니까?


3
“FORMAT은 출력을 제어합니다. 해석 된 순서 는…”– man date그리고“T”는 문자 그대로“T”입니다.
manatwork

매뉴얼 페이지에서 @manatwork, 나는 생각 서열이 모두를 참조 %Y하고 각각의 의미.
its_me

팁 :date +"You will die in the year %Y"
이즈 카타

@Izkata 의미가 없습니다 (?)
its_me

1
@TheoneManis T특별하지 않은 예입니다 . 또한, 나는 그 일을 입력했을 때 (동료의 대화를 듣고) 이상한 하루를 보냈습니다.
Izkata

답변:


7

date명령 의 POSIX 사양에 사용 된 용어 는 "변환 사양"입니다.

의 형식 문자열 date명령 밀접 C의 대한 형식 문자열에 기초 printf함수; C 표준은 또한 %d"변환 사양" 과 같은 것을 말합니다 .

T앞에는 %문자가 없습니다 : "다른 모든 문자는 변경없이 출력으로 복사됩니다."

의 POSIX 설명의 변경 내역 섹션에 따르면 date:

LC_TIME 범주와의 일관성을 위해 필드 디스크립터 대신 변환 스펙을 참조하도록 DESCRIPTION이 업데이트되었습니다.

따라서 이전 버전의 사양에서는 "필드 설명자"라는 문구가 사용되었지만 "변환 사양"은 현재 공식 용어입니다.

물론 당신이 의미하지 않는 그런 식으로 그들에게 참조.


" conversion sequences"또는 " format sequences"도 적절한 용어입니까? 에 대한 맨 페이지에 실제로 언급되어 있기 때문에 고려 sequences하고 specifications있습니다 date.
its_me

2
@ TheoneManis : 세 가지 중 하나가 의미하는 바에 대해 충분히 분명해 보입니다.
Keith Thompson

4

"이스케이프 시퀀스"또는 (이 경우 "이스케이프 된 시퀀스의 특수 문자")가 일반적인 참조 방법이라고 생각합니다. 백 슬래시 및 이스케이프 처리 된 시퀀스는 C (예 : printf)에서 많이 사용되므로 쉘에 대한 프롬프트 지정과 같이 여러 Unix 명령으로 필터링되었습니다.

"탈출 시퀀스"는 "% Y", "% m", "% d"등입니다. "특수 문자"는 "Y", "m", "d"등입니다. "%"는 "이스케이프 문자"(다음 문자에 특이하고 특별한 의미를 부여하는 문자)입니다.


3

이 문서는 IBM의 정보 센터에서 명확하게한다고 영문 에서 %Y, %m, %d, %H, %M, %S, 등이 "라고 필드 설명자 ".

각 선행되어야 필드 설명 A를 % (퍼센트 기호). 시스템은 필드 설명자를 지정된 값으로 바꿉니다. [...] date명령은 다른 문자를 변경하지 않고 출력에 복사합니다.

그것은 내 두 가지 질문 (약 % n & T)에 대답합니다. 그리고 나는 이것이 가능한 권위있는 것이라고 생각합니다.


1
IBM은이 date명령을 발명하지 않았습니다 . 그들의 문서를 권위있게 만드는 것은 무엇입니까? 이 명령의 동작은 현재 POSIX에 의해 정의되며 해당 용어를 사용하지 않습니다. POSIX 설명 의 맨 아래에있는 변경 기록에 "LC_TIME 범주와 일관성을 유지하기 위해 설명이 필드 설명자 대신 변환 사양을 참조하도록 업데이트되었습니다."라는 메시지가 표시됩니다. "필드 디 스크립터"가 아니라 "변환 사양" 당기기. 업데이트 된 답변도 참조하십시오.
Keith Thompson

2

다른 사람들이 말했듯이, T은 문자 그대로 T입니다. 그러나 구체적으로 말하면 예제 는 날짜 및 시간에 대한 ISO-8601 사양을 date "+%Y-%m-%dT%H:%M:%S%:z"준수하는 형식 문자열 인 것으로 보입니다 . 여기에 날짜와 시간을 구분하는 구분자가 있습니다.T

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.