#!/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