首页 > Linux命令:tar命令批量解压方法总结

Linux命令:tar命令批量解压方法总结

tar命令批量解压方法总结

(2010-05-24 17:48:46)
转载
标签:

tar

批量解压

杂谈

分类: linux学习

由于linux的tar命令不支持批量解压,所以很多网友编写了好多支持批量解压的shell命令,收集了一下,供大家分享:

第一:

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 "*.bz2"|xargs -i tar xvjf {}

这条命令可解压当前目录下的所有bz2文件

批量解压是比较郁闷的事,以前尝试各种方法,甚至用脚本循环语句解压都不行

现在发现这条命令可以搞定,maxdepth表示搜索深度,1代表只搜索当前目录

第四:for i in $(ls *.tar);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> 

<tarfile.tar> 是选项f所要求的,只能是一个文件,比如myfiles.tar。

 是myfiles.tar所包含的归了档的文件中的一个或者多个成员文件。如果是多个,可以用通配符。

先别跟我急,我知道,这些你是清楚的。但是,你的问题是,用了

tar -xvf *.tar

如楼上所说,tar接收到的是

tar -xvf a.tar b.tar c.tar ...

tar把你的意图理解为,在a.tar里解出b.tar c.tar ...

转载于:https://www.cnblogs.com/yanzi-meng/p/9455922.html

更多相关:

  • 项目中使用到 tar 文件,同一个 tar 文件解压之后在压缩,在程序执行的时候不能使用了 原因是 tar 对文件名长度有限制,当文件名过程的时候,使用 --format=ustar 进行压缩...

  •   参考:http://essen.iteye.com/blog/1941489   tarfile模块 具体使用方法: https://docs.python.org/2/library/tarfile.html   例子:一次性解压所有文件 import tarfilet = tarfile.open("abc.tgz",...

  • .tar文件 解压tar zxvf FileName.tar打包tar czvf SourceName.tar DirName .gz文件 解压: gunzip FileName.gzgzip -d FileName.gz 压缩 gzip FileName .tar.gz 和.gz文件 解压tar zxvf FileNam...

  • 程序:gitHub:   项目地址   使用方法:  1.拿到资源包 在itunes里找到喜欢的应用,然后下载,直接将app拖到桌面。得到一个一个ipa资源包,如图   2.将资源包改成zip格式     3.解压zip资源包,随后打开,显示包内容     4. 拿到所需的资源,在包内容中我们可以拿到image,appico...

  • 批量禁用触发器 SELECT 'ALTER TRIGGER '|| trigger_name || ' DISABLE;' FROM all_triggers; 这样就生成了一个禁用语句列表,复制到sql脚本执行界面,批量执行即可,类似的,可以用all_tables来批量删除表。 转载于:https://www.cnblogs....