--------------------------------------------------------------
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의 내용
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 -I # 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 -u +%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
댓글 없음:
댓글 쓰기