shell脚本示例之解压压缩包并将里面的文件夹重新压缩为独立的压缩包放在指定位置

#!/bin/bash
#############################################################################
#说明:解压tar.gz包并对压缩包内每个单独的文件夹进行压缩并放在指定目录下
#参数说明:1.localpath 压缩包文件路径
#         2.imagepath 单个文件夹压缩后的存放路径
#         3.trandt 当日的处理时间
#         4.filelist 当日生成的影像件明细文件 命名规则为yyyyMMdd_filelist.txt
#############################################################################
localpath=$1
imagepath=$2
trandt=$3
filelist=$trandt\_filelist
echo "************创建当天压缩包中影像件申请单号的明细文件[$trandt]***********"
cd $localpath
if [ -f $filelist.txt ];then
   rm -f $filelist.txt
   touch $filelist.txt
else
   touch $filelist.txt
fi
echo "************开始循环解压每一个影像压缩包***********"
tardir=$(ls -1 $localpath/*.tarok | awk -F "/" '{print substr($NF,0,length($NF)-6)}')
for image in $tardir
do
    tarname=$localpath$image
    #tarpath=${tarname##*/}
    echo "----------------开始处理文件[$tarname.tar]----------------"
    tarsize=`ls -l $tarname.tar | awk '{print $5}'`
    if [ $tarsize -gt 0 ];then
    	cd $localpath
	    if [ ! -d $image ];then
				mkdir $image
	    fi
    	tar -xvf $tarname.tar -C $localpath/$image
    	echo "----------------文件[$tarname.tar]解压完成--------------------"
    	imagedir=$(ls -1 $localpath/$image/*.ok | awk -F "/" '{print substr($NF,0,length($NF)-3)}')
    	number=0
    	for wsdimage in $imagedir
    	do
        cd $imagepath
        if [ ! -d $wsdimage ];then
           mkdir $wsdimage
        fi
        cd $wsdimage
        if [ ! -d $trandt ];then
            mkdir $trandt
				fi
        cd $trandt
        number=$(find . -name "$wsdimage*" | wc -l)
        let number+=1
				imagename=$localpath/$image/
        #name=${imagename##*/}
        echo "-----------------开始打包文件夹[$imagename]------------------"
        cd $imagename
        tar -cvPf $imagepath/$wsdimage/$trandt/$wsdimage\_$trandt\_$number.tar $wsdimage
        echo "-----------------文件夹[$imagename]打包结束------------------"
        if [ -f $imagepath/$wsdimage/$trandt/$wsdimage\_$trandt\_$number.tar ];then
            echo 文件[$imagepath/$wsdimage/$trandt/$wsdimage\_$number.tar]打包成功!
            echo $wsdimage\_$trandt\_$number >> $localpath/$filelist.txt
        else
            echo 文件[$imagepath/$wsdimage/$trandt/$wsdimage\_$trandt\_$number.tar]打包失败
	    			echo $wsdimage\_$trandt\_$number >> $localpath/$filelist.error
        fi
    	done
    		rm -rf $tarname
    else
    	echo "----------------文件[$tarname.tar]大小为零,不做处理--------------------"
    fi
done

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值