博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下批量解压缩
阅读量:6990 次
发布时间:2019-06-27

本文共 1053 字,大约阅读时间需要 3 分钟。

hot3.png

方法:
第一:
for tar in *.tar.gz;  do tar xvf $tar; done
for tar in *.tar.bz2; do tar xvf $tar; done
第二:用tar命令批量解压某个文件夹下所有的tar.gz文件
ls *.tar.gz | xargs -n1 tar xzvf
第三:find -maxdepth 1 -name "*.gz"|xargs -i tar xvzf {}
这条命令可解压当前目录下的所有gz文件
批量解压是比较郁闷的事,以前尝试各种方法,甚至用脚本循环语句解压都不行
现在发现这条命令可以搞定,maxdepth表示搜索深度,1代表只搜索当前目录
第四:for i in $(ls *.gz);do tar xvf $i;done
问题:
我想进行批量解压tar文件,使用tar -xvf *.tar会出错,提示“Not found in archive”。解决方法有很多,比如写一个脚本之类的。 请问为什么tar不支持这种通配符语法呢?是否有特殊的原因?我试过gzip就支gzip -d *.tar.gz。
回答:
通配符是shell解决的问题
tar -xvf *.tar
实际上执行tar时,tar接收到的是
tar -xvf a.tar b.tar c.tar ...
如果当前目录跟本没有tar的东西,那么tar就收到'*.tar'这个参数
与win不同,linux所有字符都可以作文件名,也即目录中不存在着 *.tar这个文件
为了防止 *.tar被shell解释为a.tar b.tar c.tar...
可以给它加个单引号
用tar解开一个Archive时,语法是
tar -xvf <tarfile.tar> <archived_file>
<tarfile.tar> 是选项f所要求的,只能是一个文件,比如myfiles.tar。
<archived_file> 是myfiles.tar所包含的归了档的文件中的一个或者多个成员文件。如果是多个,可以用通配符。
先别跟我急,我知道,这些你是清楚的。但是,你的问题是,用了
tar -xvf *.tar
如楼上所说,tar接收到的是
tar -xvf a.tar b.tar c.tar ...
tar把你的意图理解为,在a.tar里解出b.tar c.tar ...

转载于:https://my.oschina.net/u/2450896/blog/667158

你可能感兴趣的文章
jquery.artDialog.source.js学习
查看>>
PDF去除签名
查看>>
socket
查看>>
date
查看>>
需求方如何选择优秀的项目外包团队?
查看>>
python笔记目录
查看>>
Java语法基础课 原码 反码 补码
查看>>
Nginx记录客户端POST过来的具体信息
查看>>
windows nginx安装与开机启动
查看>>
课后作业-阅读任务-阅读提问-3
查看>>
跨平台传值
查看>>
js点击标签时获取当前标签属性值
查看>>
C# Request.InputStream 读取输入流为空的原因处理
查看>>
golang 中map并发读写操作
查看>>
zabbix自动发现
查看>>
c++和c动态申请二维数组
查看>>
在普通activity下布置代码逻辑
查看>>
mysql
查看>>
JAVA异常知识总结
查看>>
silverlight的第一个程序
查看>>