#!/bin/bash #不存在的变量终止脚本执行 set -o nounset #执行出错终止脚本执行 set -o errexit #递归列出文件的绝对路径并执行压缩 delDir=`date -d "7 days ago" +%Y/%m/%d` zipDir=`date -d "1 days ago" +%Y/%m/%d` function getAndZipFile() { for file in `ls $1` do if [ -d $1"/"$file ] then getAndZipFile $1"/"$file else zipFile $1"/"$file fi done } function zipFile() { #获取文件的路径,去除掉最后的文件名 dirName=`echo $1|awk -F "/" 'OFS="/" {$NF=" ";print}'` dDir=`echo $1|awk -F "/" '{print $6"/"$7"/"$8}'` delDirName=`ls $1|cut -d "/" -f 1-8` #获取文件名称 fileName=`ls $1|awk -F "/" '{print $NF}'` if [ "${zipDir}" == "${dDir}" ];then cd ${dirName} if [ "${fileName##*.}" != "gz" ]; then gzip ${fileName} fi elif [ "${delDir}" == "${dDir}" ];then rm -rf ${delDirName} fi } filePath=/home/web/crawler getAndZipFile ${filePath}