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

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

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

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

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值