Linux-查找压缩包内含有指定文件并能够单独解压出来

Linux-查找压缩包内含有指定文件并能够单独解压出来

虐人心 发布于 2017-02-20 字数 84 浏览 1362 回复 2

找出包含my.txt文件的压缩包tar格式,并将my.txt单独解压出来,注意有很多tar格式包

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-06-13 2 楼

你要怎么实现?
说2个方法:
1.java程序,用java.util.zip.ZipInputStream去解压,然后通过ZipEntry对象可以得到名字,剩下的比对就可以了
2.通过脚本实现,写了个简单脚本,你看下,直接执行就可以了
#!/bin/sh
a=ls *.tar.gz
find_file=1.txt
for i in $a
do
b=tar -tvf $i| awk '{print $6}'
if [[ "$b" =~ "$find_file" ]];then
echo $i
fi
done

想挽留 2017-05-19 1 楼

find . -type f -name "*.tar" | while read line; do tar -tf $line | grep my.txt; if [ $? -eq 0 ]; then tar -xvf $line my.txt; fi; done

上面语句是对归档文件的处理,如果文件已经压缩过。
gzip 加 z
bzip 加 j
这样就能解压你的文件了。