原文链接:https://blog.csdn.net/silentwolfyh/article/details/53909518

嫌麻烦看直接执行此命令,解压的是当前目录下的所有tar文件,务必先cd进入当前目录:
for i in $(ls *.tar);do tar xvf $i;done

由于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解决的问题。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐