获取文件时间:
[root@ ~]# ls --full-time beforedate.txt
-rwxr-xr-x 1 root root 27 2019-08-12 16:54:31.137000000 +0800 beforedate.txt
[root@ ~]# ls --full-time beforedate.txt| cut -d ' ' -f 6
2019-08-12
[root@ ~]# ls --full-time beforedate.txt| cut -d ' ' -f 7
16:54:31.137000000
[root@ ~]# ls --full-time beforedate.txt|awk '{print $6 " " $7}'
2019-08-1216:54:31.137000000
[root@ ~]# ls --full-time beforedate.txt |awk '{print $6 " " $7}' |cut -d '.' -f 1
2019-08-12 16:54:31
获取系统时间:
[root@ ~]# echo `date +%Y-%m-%d` `date +%H:%M:%S`
2019-09-27 14:41:23
------------------------实例------------------------
#!/bin/bash
#
#功能:查找指定日期范围内的文件,然后压缩打包。
#
BDATE=$(echo `ls --full-time beforedate.txt |awk '{print $6 " " $7}' |cut -d '.' -f 1`)
ADATE=$(echo `date +%Y-%m-%d` `date +%H:%M:%S`)
if [ -z "$1" ]; then
echo "读取文件开始时间"
else
echo "手工输入开始时间"
BDATE1=$1
BDATE2=$2
BDATE=$(echo ${BDATE1} ${BDATE2})
fi
echo 执行开始,时间起点【${BDATE}】截止日期【${ADATE}】!
cd /home
FILE=A`date "+%Y%m%d"`.tar.gz
#将文件名为首大写字母的,开始时间到系统时间打包
FILES=`find . -name '[A-Z]*.txt' -newermt "${BDATE}" ! -newermt "${ADATE}" -type f -print`
if [ -z "${FILES}" ];then
echo "无文件生成!"
else
rm -f $FILE
tar zcvf ${FILE} ${FILES}
echo "文件已生成,位置:"
ls -ltr `pwd`/${FILE}
#更新日期
cd /root/
cat /dev/null > beforedate.txt
fi
echo 执行结束,时间起点【${BDATE}】截止日期【${ADATE}】!