날짜 유틸리티를 사용하여 에포크 시간 인쇄

날짜 유틸리티를 사용하여 에포크 시간 인쇄

독서에서또 다른 대답다음 명령을 사용하여 현재 내용을 인쇄할 수 있다는 것을 알고 있습니다.에포크 시간:

$ date +'%s'
1491150773

독서부터date(1)매뉴얼 페이지(참고: 저는 실제로 macOS를 사용합니다)에서 사용법을 보여주는 예를 찾았습니다.

 Finally the command:

 date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

 can be used to parse the output from date and express it in Epoch time.

+예제를 읽어보면 다음과 같이 작은따옴표 안에 넣을 수 있는 것 같습니다 .

$ date '+%s'
1491150781

현재 에포크 시간을 성공적으로 인쇄할 수 있지만 왜 작동하는지 이해하지 못하며 몇 가지 문제가 있습니다.

  • date +'%s'현재 시대 시간을 인쇄하는 이유는 무엇입니까 ? 이 예에서 사용 패턴을 보여주는 보다 일반적인 예가 있습니까?
  • +왜 따옴표 안에 따옴표를 넣을 수 있나요 ?

나는 명령을 넣어 보았습니다.쉘 해석, 하지만 별로 도움이 되지 않습니다.

여기에 이미지 설명을 입력하세요.

답변1

BSD 날짜와 GNU 날짜는 모두 다음과 같은 형식을 갖습니다.

date +FORMAT

with는 FORMAT날짜를 표시하기 위한 출력 형식 문자열입니다. 따라서 입력해야 할 것은 date으로 시작하는 문자열뿐입니다 +.

문자열은 쉘에 전달되기 전에 date쉘에 의해 해석됩니다 . 따라서 +%s둘 중 하나 +'%s'또는 "+%s"둘 다 동일하며 모든 POSIX 쉘에서 있는 그대로 해석됩니다.

유일한 장점 +'%s'은 걱정할 필요 없이 어떤 문자열 형식이 사용되는지 빠르게 감지하거나 복사 및 구문 분석할 수 있다는 것입니다 +.

또한 +'FORMAT'쉘 확장으로 해석될 수 있는 일부 특수 형식을 사용할 때 도움이 될 것입니다. 예 zsh:

date +'(%s)'

다음과 같은 동안 작동합니다:

date +(%s)

습관.

관련 정보