linux脚本批量解压,Shell中使用tar命令批量解压缩的实现方法

因内网环境中需要大批量解压缩.tar.gz文件 所以想了一些方法去实现。

tar原生不支持批量解压,故可以采用循环读取文件名的方法实现解压。

代码实现:

#获取类型(Http等),目录地址,临时方案

type=$1

dir=$2

#获取时间,包括月、日、小时账期

#测试使用-调度内采用Oracle导入时间参数

v_month=`date -d "-1 month" '+%Y%m'` #当月

echo $v_month

v_day=`date '+%Y%m%d'` #当日

echo $v_day

#v_hour=`date -d "-1 hour" '+%Y%m%d%H'` #前一个小时

echo $v_hour

#创建临时文件夹

temp='temp_'${type}'_'${v_hour}

echo ${temp}

mkdir ${dir}/${temp}

#解压数据 匹配对应类型type和时间戳

for i in `ls ${dir}/*${v_hour}*${type}*`

do

tar -xzvf $i -C ${dir}/${temp} #执行压缩

done

当然也可以使用管道 | 实现,语法更为简洁

代码实现:

#获取类型(Http等),目录地址,临时方案

type=$1

dir=$2

#获取时间,包括月、日、小时账期

#测试使用-调度内采用Oracle导入时间参数

v_month=`date -d "-1 month" '+%Y%m'` #当月

echo $v_month

v_day=`date '+%Y%m%d'` #当日

echo $v_day

#v_hour=`date -d "-1 hour" '+%Y%m%d%H'` #前一个小时

echo $v_hour

#创建临时文件夹

temp='temp_'${type}'_'${v_hour}

echo ${temp}

mkdir ${dir}/${temp}

#解压数据 匹配对应类型type和时间戳

ls ${dir}/*${v_hour}*${type}* | xargs -n1 -i tar xzvf {} -C ${dir}/${temp}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值