2020년 2월 8일 토요일

리눅스 : date 사용법

참조 URL : 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

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

댓글 없음:

댓글 쓰기