'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.