大家都知道,tar 命令只能接受一个文件名作为参数,也就是说 tar 命令本身一次只能解压一个文件。如果某个目录下有很多 .tar.gz 文件,一个一个去解压显然麻烦,能不能一条命令就把它们全解出来?答案是肯定的。
我们可以通过 for in 循环语句来实现,原理是将要解压的归档文件名逐一赋给一个变亮,通过循环语句让 tar 逐一引用这些变量即可。说得这么复杂,其实很简单,我也不碎碎念了,下面就给出具体命令。
解压当前目录下的所有 .tar.gz 结尾的文件:for ARK in ./*.tar.gz; do tar xvf $ARK; done
原理就是上面说的,把当前目录下所有的 .tar.gz 文件的文件名逐一赋给变量 ARK,让 tar 来引用 ARK 变量。