필요에 따라 시간과 날짜를 다양한 포맷으로 출력하는 명령어이다. 

1
2
3
4
5
6
7
8
사용법 : date [옵션] [+포맷] [날짜]
       -d, --date date : 지정한 date 값과 같이 시간과 날짜를 보여준다.
       -f, --file=datedate : 지정한 날짜 파일에서 각각의 줄에 대한 날짜를 보여준다.
       -I, --iso-8601[=TIMESPEC] : ISO-8601 포맷으로 보여준다. 만일 timespec를 지정하였다면, 날짜나 시, 분, 초에 대한 값 중 하나를 보여준다.
       -r, --reference=FILE : 지정한 파일이 마지막으로 수정된 날짜를 보여준다.
       -R, --rfc-822 : RFC-822 데이트 문자열로 보여준다.
       -s, --set=STRING : 지정한 string으로 시간을 맞춘다.
       --version : 버전정보를 보여준다.

date는 시간과 날짜를 알려 준다. 만일 옵션이 없으면, 시스템의 현재 시간과 날짜를 보여주며, +로 시작되는 옵션이 있으면 지시하는 형태대로 보여주게된다. 
기본 출력은 다음과 같다. 

1
2
# date
2002. 07. 01. (월) 20:09:50 KST

%j는 현 시스템의 년도에서 오늘 날짜까지 며칠이 지났는지 알 수 있다. 

1
2
# date +%j
182

%H는 현재의 시간을 24시간제로 보여주며,%M은 분을 보여준다. 
또한 다음과 같은 방법으로 오늘 날짜의 연월일을 형식을 지정하여 표현할 수도 있다. 

1
2
3
4
# date +%H%M
2009
# date +%Y-%m-%d
2002-07-10

--date 옵션으로 현재 시간에 15일 후의 날짜를 알 수 있다. 

1
2
# date --date '15 days day'
2002. 07. 17. (수) 20:18:24 KST

그럼, 현재 시간에서 3년 2개월 전은 날짜가 어떻게 될까? 

1
2
# date --date '3years 2months ago'
1999. 05. 01. (토) 20:19:48 KST

또한 이와 같은 날짜의 출력 결과를 다냥한 포맷으로 출력할 수 있다. 이 포맷을 다양하게 조합하여 자기만의 출력 결과를 만들 수도 있으며, 셸 스크립트와 cron을 이용하여 백업이나 기타 작업을 할 때 셸 스크립트에서 date 명령을 이용하여 작업한 날짜와 시간의 이름으로 파일을 만들도록 지정할 수도 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
       %      % 문자 그 자체
       -      필드를 채우지 않는다.(기본적으로 0으로 채운다)
       _      필드를 공백으로 채운다.
       n      줄바꿈
       t      수평 탭
 
시간 필드:
       %H     시 (00..23)
       %I     시 (01..12)
       %k     시 ( 0..23)
       %l     시 ( 1..12)
       %M     분 (00..59)
       %p     로케일의 AM 또는 PM
       %r     시간, 12-시간제 (hh:mm:ss [AP]M)
       %s     1970-01-01  00:00:00  UTC  (비표준 확장기능)로 부터
              경과된 초
       %S     초 (00..61)
       %T     시간, 24-시간 (hh:mm:ss)
       %X     로케일에서 정의한 시간 표현(%H:%M:%S)
       %Z     시간대 (에, EDT), 시간대를 결정할 수 없는 때는 아무
             값도 출력하지 않는다.
 
날짜 필드:
       %a     로케일의 약식 요일 이름 (Sun..Sat)
       %A     로케일의  완전한 요일 이름, 가변 길이 (Sunday..Sat-
             urday)
       %b     로케일의 약식 월 이름 (Jan..Dec)
       %B     로케일의 완전한 월 이름, 가변 길이 (January..Decem-
             ber)
       %c     로케일의 날짜와 시간 (Sat Nov 04 12:02:33 EST 1989)
       %d     월 중 일 (01..31)
       %D     날짜 (mm/dd/yy)
       %h     %b 와 동일
       %j     연 중 일 (001..366)
       %m     월 (01..12)
       %U     연 중 주  번호,  일요일을  주의  첫번째  날로  생각
             (00..53)
       %w     요일 번호 (0..6), 0 은 일요일
       %W     연  중  주  번호,  월요일을  주의  첫번째 날로 생각
             (00..53)
       %x     로케일의 날짜 표현식 (mm/dd/yy)
       %y     연 중 일의 마지막 두 숫자 (00..99)
       %Y     연 (1970...)


Posted by wychoi
,