因为linux的tar不支持批量解压,所以好多网友编撰了很多支持批量解压的,搜集了一下,供你们分享:
第一:
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会出错linux服务器维护,提示“Notfoundinarchive”。解决方式有好多,例如写一个之类的。请问为何tar不支持这些键值句型呢?是否有特殊的诱因?我试过gzip就支gzip-d.tar.gz。
回答:
转义是shell解决的问题
如
tar-xvf*.tar
实际上执行tar时,tar接收到的是
tar-xvfa.tarb.tarc.tar…
假如当前目录跟本没有tar的东西linux解压gz命令linux 论坛,这么tar就收到’*.tar’这个参数
与win不同,linux所有字符都可以作文件名,也即目录中不存在着*.tar这个文件
为了避免*.tar被shell解释为a.tarb.tarc.tar…
可以给它加个单冒号
用tar解开一个Archive时,句型是
tar-xvf<tarfile.tar>
<tarfile.tar>是选项f所要求的,只能是一个文件,例如myfiles.tar。
是myfiles.tar所包含的归了档的文件中的一个或则多个成员文件。假如是多个,可以用转义。
先别跟我急,我晓得,这种你是清楚的。并且,你的问题是,用了
tar-xvf*.tar
如楼上所说,tar接收到的是
tar-xvfa.tarb.tarc.tar…
tar把你的意图理解为linux解压gz命令,在a.tar里解出b.tarc.tar…
---------------------本文来自silentwolfyh的CSDN博客,全文地址请点击:
本文原创地址://gulass.cn/jjtmlbzcpljy.html编辑:刘遄,审核员:暂无