shell 中 date的用法

时间:2023-01-30 14:54:36

1. 获取离今天的上周  上月  下周 下月的日期

date -d "-1 week" "+%Y%m%d %A"
date -d "1 day" "+%Y%m%d %A"

date -d "2 day" "+%Y%m%d %A"

date -d "-1 month" "+%Y%m%d %A"

date -d "1 month" "+%Y%m%d %A"
2. date '+%Y-%m-%d %H:%M' -d '-10 minute'

     之前的第10分钟

3. date的用法:

http://www.cnblogs.com/hpf311/archive/2012/08/14/2637819.html


2. atime  mtime ctime  区别
http://blog.sina.com.cn/s/blog_43e6c8520100gspe.html


http://blog.sina.com.cn/s/blog_5980699f0100zkgz.html


3./usr/bin/stat -c %y  filename

[zengtai.csm@tweb1 conf]$ /usr/bin/stat -c %Y /home/a/search/nfs/tanx/adzoneinfo.tdbm.done
1342054262

4. shell 中的date  常用方法

http://blog.sina.com.cn/s/blog_703eb0cb0100nqd5.html


(2). date 基本用法

$ a=`date +"%Y-%m-%d %H:%M:%S"`
echo $a
2012-07-30 09:31:41

5. date  unix   时间戳  和 字符串的转换

http://blog.csdn.net/lifuxin1125/article/details/7470295


6. 昨天的元月日表示:

#!/bin/bash

SRC_ERR_LOG=/home/a/share/nginx/logs/error.log
SRC_ACC_LOG=/home/a/share/nginx/logs/proxy-reload.log
DST_LOG_ROOT="/home/a/share/nginx/logs/cronolog"

YEAR_MON=$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
YEAR_MON_DAY=$(date -d "yesterday" +"%Y-%m-%d")

DST_ERR_LOG=${DST_LOG_ROOT}/${YEAR_MON}/${YEAR_MON_DAY}-error_log
DST_ACC_LOG=${DST_LOG_ROOT}/${YEAR_MON}/${YEAR_MON_DAY}-proxy-reload_log

mkdir -p ${DST_LOG_ROOT}/${YEAR_MON}
chown ads ${DST_LOG_ROOT} -R

mv ${SRC_ERR_LOG} ${DST_ERR_LOG}
mv ${SRC_ACC_LOG} ${DST_ACC_LOG}

kill -USR1 `cat /home/a/share/nginx/logs/nginx-proxy.pid`

gzip -c ${DST_ERR_LOG} > ${DST_ERR_LOG}.gz
rm ${DST_ERR_LOG}
gzip -c ${DST_ACC_LOG} > ${DST_ACC_LOG}.gz
rm ${DST_ACC_LOG}

chown ads ${DST_ERR_LOG}.gz
chown ads ${DST_ACC_LOG}.gz

7. 1分钟 1小时  1天 1周 1月  1年前的时间:

echo $(date -d "1 minute ago" +"%Y-%m-%d %H:%M:%S") 
2012-11-02 21:03:44
echo $(date -d "1 hours ago" +"%Y-%m-%d %H:%M:%S")
2012-11-02 20:05:16
echo $(date -d "1 days ago" +"%Y-%m-%d %H:%M:%S")
2012-11-01 21:05:22
echo $(date -d "1 week ago" +"%Y-%m-%d %H:%M:%S")
2012-10-26 21:05:27
echo $(date -d "1 months ago" +"%Y-%m-%d %H:%M:%S")
2012-10-02 21:05:39

1分钟  1小时  1天  1周  1月 1年

 echo $(date -d "1 minute " +"%Y-%m-%d %H:%M")
2012-11-02 21:09
echo $(date -d "1 hours " +"%Y-%m-%d %H:%M")
2012-11-02 22:08
echo $(date -d "1 days " +"%Y-%m-%d %H:%M")
2012-11-03 21:08
echo $(date -d "1 month " +"%Y-%m-%d %H:%M")
2012-12-02 21:08
echo $(date -d "1 year " +"%Y-%m-%d %H:%M")
2013-11-02 21:08

重用的简单格式:

echo $(date +%s)
1351861770
echo $(date +%F)
2012-11-02
echo $(date +%D)
11/02/12

8. date 各种时间之间的转化:

date -d "@1354021141 " +"%Y-%m-%d %H:%M"
2012-11-27 20:59

date -d "2012-11-27 20:59:00" +%s
1354021140

date -d "2012-11-27 20:59:00" +%F
2012-11-27