使用shell脚本一次性解压某一路径下多个压缩文件

本文介绍了一种使用bash脚本批量解压缩.tar.bz2文件的方法,并进一步实现了将解压后的文件组织到与压缩包同名的文件夹中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

博主下载下了一个数据集,里面的压缩文件实在是太多了,一个一个地去tar -jxvf实在感觉笨笨的,于是参考了一些网上的写法编写了一个基于for do循环的解压缩脚本。

说明

1. 我的压缩文件全部是.tar.bz2结尾的,如果是其他的可能不是用tar -jxvf来解压缩

2. find 后面的path参数缺省项是当前目录,而且find自带递归属性,不需要额外加-r

3. 有一个小坑,就是给变量赋值,千万不要为了美观在“=”前后加空格

脚本

ok,上代码

#!/bin/bash
 
bz2files=`find -name *.tar.bz2`
 
for file in $bz2files; do
    tar -jxvf $file && rm -f $file
done

之后再sh xx.sh运行这个脚本就可以等待了~

进阶

现在我希望解压的结果类似于图形界面中的"解压到当前文件夹下",如下图所示

 那么可以通过字符串截取的方式将压缩包的名字得到(即.tar.bz2)作为解压后的文件夹名,然后加在参数-C后,代码如下

#!/bin/bash
 
bz2files=`find 路径 -name "*.tar.bz2"`
 
for file in $bz2files; do
    newfile=${file%.tar*}
    mkdir $newfile
    tar -jxvf $file -C $newfile
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSU迦叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值