[리눅스] date 명령어(펌)

2020. 3. 25. 11:26Server

문법

date [OPTION] [FORMAT]

date 명령어는 단독으로 쓰일 수 있으며, 옵션과 포맷인자는 때에 따라 추가하여 사용할 수 있습니다.

 

 

옵션

    • -d[STRING], --date=[STRING]

      현재의 시간이 아닌 [STRING]인자값에 따라 일시를 조정하여 출력합니다.

      예제의 기준시간은 Sun Jan 1 00:00:00 KST 2017(2017년 1월 1일 0시 0분 0초)입니다.

       

      # 년(year) 조정
    • > date -d'1 year' # 1년 후

      Mon Jan  1 00:00:00 KST 2018

       

      > date -d'1 year ago' # 1년 전

      Fri Jan  1 00:00:00 KST 2016

       

      # 월(month) 조정

      > date -d'1 month' # 1개월 후

      Wed Feb  1 00:00:00 KST 2017

       

      > date -d'1 month ago' # 1개월 전

      Thu Dec  1 00:00:00 KST 2016

       

      # 주(week) 조정

      > date -d'1 week' # 1주일 후

      Sun Jan  8 00:00:00 KST 2017

       

      > date -d'1 week ago' # 1주일 전

      Sun Dec 25 00:00:00 KST 2016

       

      # 일(day) 조정

      > date -d'yesterday' # 어제

      Sat Dec 31 00:00:00 KST 2016

       

      > date -d'tomorow' # 내일

      Mon Jan  2 00:00:00 KST 2017

       

      > date -d'1 day ago' # 1일 전

      Sat Dec 31 00:00:00 KST 2016

       

      > date -d'2 day' # 2일 후

      Mon Jan  2 00:00:00 KST 2017

       

      > date -d'this monday' # 이번주 월요일(일요일 시작 기준)

      Mon Jan  2 00:00:00 KST 2017

       

      > date -d'last wednesday' # 지나간 최근 수요일

      Wed Dec 28 00:00:00 KST 2016

       

      > date -d'next friday' # 다가오는 금요일

      Fri Jan  6 00:00:00 KST 2017

       

      # 시(hour) 조정

      > date -d'1 hour' # 1시간 후

      Sun Jan  1 01:00:00 KST 2017

       

      > date -d'1 hour ago' # 1시간 전

      Sat Dec 31 23:00:00 KST 2016

       

      # 분(minute) 조정

      > date -d'1 minute' # 1분 후

      Sun Jan  1 00:01:00 KST 2017

       

      > date -d'1 minute ago' # 1분 전

      Sat Dec 31 23:59:00 KST 2016

       

      # 초(second) 조정

      > date -d'1 second' # 1초 후

      Sun Jan  1 00:00:01 KST 2017

       

      > date -d'1 second ago' # 1분 전

      Sat Dec 31 23:59:59 KST 2016

       

    • -f[DATEFILE], --file=[DATEFILE]

      날짜가 입력된 파일을 라인 단위로 읽어와 출력해주는 옵션입니다.

      파일 내용으로는 위의 -d 옵션에 [STRING]인자값의 형식으로 기술되어 있어야 합니다.

       

      # 파일 : testfile.txt

      1

      2

      3

      4

      2017-01-01

      20170101

      2017-01-01+2 year ago

      20170101+1 year 1 month

       

      # 출력결과

      > date -f'testfile.txt' # same as --file=testfile.txt

      Sun Jan  1 00:00:00 KST 2017

      Sun Jan  1 00:00:00 KST 2017

      Thu Jan  1 00:00:00 KST 2015

      Thu Feb  1 00:00:00 KST 2018

 

    • -I[TIMESPEC], --iso-8601=[TIMESPEC]

      ISO8601 표준규격에 해당하는 포맷으로 변경하여 출력합니다.

      [TIMESPEC]에 들어갈 인자로는 hours, minutes, date, seconds, ns가 있습니다.

      > date -# same as -I'date'

      2017-01-01

       

      > date -I'hours'

      2017-01-01T00+0900

       

      > date -I'minutes' 

      2017-01-01T00:00+0900

       

      > date -I'second' 

      2017-01-01T00:00:00+0900

       

      > date -I'ns' 

      2017-01-01T00:00:00,000000000+0900

 

    • -r[FILE], --reference=[FILE]

      파일 혹은 폴더를 참조하여 해당 파일이나 폴더의 수정일시를 출력합니다.

      > date -r'testfile.txt'

      Sun Jan  1 00:00:00 KST 2017

 

    • -R, --rfc-2822

      RFC2822 형식에 해당하는 포맷으로 변경하여 출력합니다.

      > date -R

      Sun, 01 Jan 2017 00:00:00 +0900

 

    • --rfc-3339=[TIMESPEC]

      RFC3339 형식에 해당하는 포맷으로 변경하여 출력합니다.

      [TIMESPEC]에 들어갈 인자로는 date, seconds, ns가 있습니다.

      > date --rfc-3339='date'

      2017-01-01

       

      > date --rfc-3339='second'

      2017-01-01 00:00:00+09:00

       

      > date --rfc-3339='ns'

      2017-01-01 00:00:00.000000000+09:00

 

    • -s[STRING], --set=[STRING]

      [STRING]인자값은 필수로 시스템의 일시를 변경해줍니다.

      > date -s'2017-01-01 00:00:00'

      Sun Jan  1 00:00:00 KST 2017

 

  • -u, --utc, --universal

    UTC(세계협정시)로 출력한다.

    > date -u

    Sun Jan  1 00:00:00 UTC 2017

 

포맷

    • +%%

      '%'문자를 출력합니다.

    • > date +%%

      %

 

    • +%a

      '요일'을 간략한 문자형태로 출력합니다.

      > date +%a # 일요일

      Sun

 

    • +%A

      '요일'을 문자형태로 출력합니다.

      > date +%A # 일요일

      Sunday

 

    • +%b

      '월'을 간략한 문자형태로 출력합니다.

      > date +%b # 1월

      Jan

 

    • +%B

      '월'을 문자형태로 출력합니다.

      > date +%B # 1월

      January

 

    • +%c

      로컬에 설정된 형식으로 '일시'를 출력합니다.

      > date +%c # 2017-01-01 00:00:00

      Sun 01 Jan 2017 12:00:00 AM KST

 

    • +%C

      '연도'에서 첫 두자리만 출력합니다.

      > date +%C # 2017-01-01

      20

 

    • +%d

      '일'을 0을 포함한 숫자형태로 출력합니다.

      > date +%d # 2017-01-01

      01

 

    • +%D

      '월/일/년' 형식으로 출력합니다.(+%m/%d/%y와 동일)

      > date +%D # 2017-01-01

      01/01/17

 

    • +%e

      '일'을 공백을 포함한 숫자형태로 출력합니다.(+%_d와 동일)

      > date +%e # 2017-01-01

       1

 

    • +%F

      '년-월-일'형식으로 출력합니다.(+%Y-%m-%d와 동일)

      > date +%e # 20170101

      2017-01-01

 

    • +%g

      '연도'에서 마지막 두자리만 출력합니다.(+%G 참조)

      ISO(국제표준화기구)의 규정에 따라 2017년도여도 아직 52주차가 끝나지 않았으면 2016년도로 간주합니다.(+%V 참조)

      > date +%g # 2017-01-01

      16

 

    • +%G

      '연도'를 출력합니다.

      마찬가지로 ISO의 규정에 따라 2017년도지만 2016년도로 표현합니다.(+%V 참조)

      > date +%G # 2017-01-01

      2016

 

    • +%h

      '월'을 간략한 문자형태로 출력합니다.(+%b와 동일)

      > date +%h # 1월

      Jan

 

    • +%H

      '시'를 0을 포함한 24시 형식으로 출력합니다.(00..23)

      > date +%H # 17:00:00

      17

 

    • +%I

      '시'를 0을 포함한 12시 형식으로 출력합니다.(01..12)

      > date +%I # 17:00:00

      05

 

    • +%j

      해당년도의 1월1일을 1일째로 시작하여 몇일째인지 출력합니다.(001..366)

      > date +%j # 2017-02-01

      032

 

    • +%k

      '시'를 공백을 포함한 24시 형식으로 출력합니다.( 0..23, +%_H와 동일)

      > date +%k # 09:00:00

       9

       

      > date +%k # 18:00:00

      18

 

    • +%l

      '시'를 공백을 포함한 12시 형식으로 출력합니다.( 1..12, +%_I와 동일)

      > date +%l # 09:00:00

       9

       

      > date +%l # 18:00:00

       6

 

    • +%m

      '월'을 숫자형태로 출력합니다.(01..12)

      > date +%m # 1월

      01

 

    • +%M

      '분'을 출력합니다.(00..59)

      > date +%M # 12:34:56 

      34

 

    • +%n

      새로운 줄을 출력합니다.(개행문자)

      > date +%n

       

       

       

      > date +%n%F # 2017-12-25

       

      2017-12-25

       

      > date +%D%n # 2017-12-25

      12/25/17

       

 

    • +%N

      '나노초'를 출력합니다.(000000000..999999999)

      > date +%N # 09:00:00.123456789

      123456789

       

      > date +%3N # 09:00:00.123456789

      123

 

    • +%p

      '오전/오후'를 출력합니다.(AM/PM)

      > date +%p # 09:00:00

      AM

       

      > date +%p # 18:00:00

      PM

 

    • +%P

      '오전/오후'를 출력합니다.(am/pm)

      > date +%P # 09:00:00

      am

       

      > date +%P # 18:00:00

      pm

 

    • +%r

      '시:분:초 오전/오후'를 12시 형식으로 출력합니다.(+'%H:%M:%S %p'와 동일)

      > date +%r # 18:00:00

      06:00:00 PM

 

    • +%R

      '시:분'을 24시 형식으로 출력합니다.(+%H:%M과 동일)

      > date +%R # 18:00:00

      18:00

 

    • +%s

      협정세계시(UTC)를 기준으로 1970-01-01 00:00:00부터 해당일시까지 계산한 '초'를 출력합니다.

      한국 표준시는 KST이므로 UTC기준 +9시간 부터 측정합니다.

      > date +%s # 1970-01-01 09:00:59

      59

       

      > date +%s # 2017-01-01 09:00:00

      1483228800

 

    • +%S

      '초'를 출력합니다.(00..60)

      > date +%S # 12:34:56

      56

 

    • +%t

      탭문자를 삽입합니다.

      > date +%t%D # 2017-01-01

          01/01/17

       

      > date +%H%t%M%t%S # 12:34:56

      12    34    56

 

    • +%T

      시간을 출력합니다.(+%H:%M:%S와 동일)

      > date +%T # 12:34:56

      12:34:56

 

    • +%u

      '요일'을 숫자형태로 출력합니다.(1..7, 1=Monday)

      > date +%u # 일요일

      7

 

    • +%U

      해당년도의 첫 일요일을 1주째로 시작하여 몇주째인지를 출력합니다.(00..53)

      > date +%U # 2016-01-01(금)

      00

       

      > date +%U # 2016-12-31(수)

      52

       

      > date +%U # 2017-01-01(일)

      01

 

    • +%V

      국제 표준화 기구 규정에 따라, 해당년도의 첫 월요일을 1주째로 시작하여 몇주째인지를 출력합니다.(01..53)

      > date +%V # 2016-01-01(금)

      53

       

      > date +%V # 2017-01-01(일)

      52

       

      > date +%V # 2017-01-02(월)

      01

 

    • +%w

      '요일'을 숫자형태로 출력합니다.(0..6, 0=Sunday)

      > date +%w # 토요일

      6

 

    • +%W

      해당년도의 첫 월요일을 0주째로 시작하여 몇주째인지를 출력합니다.(00..53)

      > date +%w # 2017-02-01

      05

 

    • +%x

      '월/일/년'형식으로 출력합니다.

      > date +%x # 2017-12-25

      12/25/2017

 

    • +%X

      '시:분:초 오전/오후'형식으로 출력합니다.(+%r과 동일)

      > date +%X # 09:00:00

      09:00:00 AM

 

    • +%y

      '연도'에서 마지막 두자리만 출력합니다.

      > date +%y # 2017-01-01

      17

 

    • +%Y

      '연도'를 출력합니다.

      > date +%Y # 2017-01-01

      2017

 

    • +%z

      UTC(세계협정시)를 기준으로 로컬의 시간이 얼마나 차이나는지 '+/-시분'형식으로 알려줍니다.(한국은 KST로 UTC와 +0900차이가 납니다.)

      > date +%z # KST

      +0900

       

      > date -+%z # UTC

      +0000

 

    • +%:z

      UTC(세계협정시)를 기준으로 로컬의 시간이 얼마나 차이나는지 '+/-시:분'형식으로 알려줍니다.

      > date +%:z # KST

      +09:00

 

    • +%::z

      UTC(세계협정시)를 기준으로 로컬의 시간이 얼마나 차이나는지 '+/-시:분:'형식으로 알려줍니다.

      > date +%::z # KST

      +09:00:00

 

    • +%:::z

      UTC(세계협정시)를 기준으로 로컬의 시간이 얼마나 차이나는지 '+/-시'형식으로 알려줍니다.

      > date +%:::z # KST

      +09

 

  • +%Z

    현재의 표준시가 어떻게 되는지 알려줍니다.(한국은 KST)

    > date +%Z # KST

    KST

 

출처 : https://blog.azulpintor.io/entry/Linux-date-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95