因为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

第三:

解压命令linuxtar_解压命令linuxgz_linux解压gz命令

find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {}

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

批量解压是比较苦闷的事,曾经尝试各类技巧,甚至用循环句子解压都不行

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

第四:

解压命令linuxgz_解压命令linuxtar_linux解压gz命令

for i in $(ls *.tar);do tar xvf $i;done

问题:

我想进行批量解压tar文件,使用tar-xvf.tar会出错linux服务器维护,提示“Notfoundinarchive”。解决方式有好多,例如写一个之类的。请问为何tar不支持这些键值句型呢?是否有特殊的诱因?我试过gzip就支gzip-d.tar.gz。

回答:

转义是shell解决的问题

解压命令linuxgz_解压命令linuxtar_linux解压gz命令

tar-xvf*.tar

实际上执行tar时,tar接收到的是

tar-xvfa.tarb.tarc.tar…

假如当前目录跟本没有tar的东西linux解压gz命令linux 论坛,这么tar就收到’*.tar’这个参数

解压命令linuxgz_解压命令linuxtar_linux解压gz命令

与win不同,linux所有字符都可以作文件名,也即目录中不存在着*.tar这个文件

为了避免*.tar被shell解释为a.tarb.tarc.tar…

可以给它加个单冒号

用tar解开一个Archive时,句型是

tar-xvf<tarfile.tar>

解压命令linuxtar_linux解压gz命令_解压命令linuxgz

<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编辑:刘遄,审核员:暂无