본문 바로가기
기타/툴 관련(리눅스)

Linux/Unix date 명령어 공부

by WebHack 2009. 5. 8.
$ date 하면
다음처럼 지금의 날짜와 시간을 보여 줍니다.
2009. 04. 17. (금) 18:52:15 KST
어제의 날짜를 알고 싶으면,
$ date -d yesterday
$ data --date="yesterday"
이 방식이 괜히 머리쓴다고, 날짜빼고, carry되는 거 계산해서, 달에서 하나 빼고 하는 방식보다 훨씬 간편하고 정확합니다.
즉, 오늘이 4월 1일이면, 어제는 4월 0일이아니라, 3월 31이 됩니다.
 
며칠 전의 날짜를 알고 싶으면,
$ date -d "-100 days"
$ date -d "100 days ago"
$ date --date="-100 days"
$ date --date="100 days ago"
이 옵션값들은 100일 전의 날짜를 표시합니다.
 
며칠 후의 날짜를 알고 싶으면,
$ date -d "+100 days"
$ date --date="+100 days"
이 옵션값들은 100일 후의 날짜를 표시합니다.
 
$ date --date="100 days after" 는 에러가 납니다.
왜 after를 처리하지 않을까요? 음 이건 아마도 자동으로 뒤에 ago가 없으면 뒤의 날짜가 되기 때문인가 봅니다.
 
장난삼아,
$ date -d "-100 days ago"
이건, 100일 전인데, -가 붙었으니까, 100일 후가 되어야 겠지요.
 
$ date -d "2 month 3 days" 는 2개월 뒤에다가 3일 뒤의 날짜입니다.
 
내일은,
$ date -d tomorrow
이렇게 하면 됩니다.
 
아래 것들도 잘 동작하네요.
$ data -d "this monday"
$ data -d "last monday"
$ data -d "next monday"
 
$ data -d "this month"
$ data -d "last month"
$ data -d "next month"

P.S  출력 포맷 변환은 끝에 +"%Y%m%d"
예) 3개월 전 날짜를 20090208 형태로 출력
[root@system]# date -d "-3 month" +%Y%m%d
20090208