shell 脚本之一 怎样判断包类型进行解压处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuimofengyang/article/details/84285611

背景:在公司某个平台链接下载后,是一堆带有文件带有后缀的文件,要进行切割,判断是那个类型的包及相应的处理。

#!/bin/bash
# ********************************************************************************
# 程序名称:    下载雷鸟增量数据流程二
# 功能描述:    将下载的数据进行切割,重命名,解压到loadData目录中
# 输入参数:        
#              
# 输入资源:    
# 输出资源:    
#                
# 中间资源:    
# 创建人员:    csq    
# 创建日期:    20181023
# 版本说明:
# 修改人员:    
# 修改日期:    
# 修改原因:   
# 版本说明:   
#              
# ********************************************************************************
# ********************************************************************************
#

time=`date -d @date -d today +'%Y-%m-%d'`
 cd /home/work/loadTemp; 
{
for file in /home/work/loadTemp/*;
do 
    #获取文件名,注意遍历出来file带路径
    fileName=${file##*/} ;
    #按标识符切分,取想要的那一部分
    name=`echo $fileName | cut -d '?' -f 1 `;
    echo $name
    #将下载的文件重命名成自己对应的文件包
    mv $file /home/work/loadTemp/$name ;
    
    #将此文件解压到目的目录中
    if [ ${name##*.} = gz ] ; then
        TEMP=${name%.*}
            if [ ${TEMP##*.} = tar ] ; then
                    tar -zxvf ${name} -C /home/work/loadData/
                    echo "This is a tar.gz package"
            else
                    gunzip ${name} >> /home/work/loadData/${TEMP}
                    echo "This is a gz package"
            fi
    elif [ ${name##*.} = log ] ; then
            mv $name /home/work/loadData
            echo "This is a log"
    
    fi
    #磁盘空间小,清空这此目录下那些包。
    rm -rf /home/work/loadTemp/*
    echo "-----------------------"$time "finsh" $file "-------------------------------";
done

}

猜你喜欢

转载自blog.csdn.net/shuimofengyang/article/details/84285611