如何轻松提取嵌套的tar.gz文件?

Sta*_*Cub 2 bash command-line extract

我需要提取tar.gz文件。大约是950mb。它中还有23个tar.gz文件。这23个tar.gz文件中的每个文件都有一个tar文件。我的问题是如何轻松提取所有这些?我可以使用命令行工具吗?

结构如下:

foo.tar.gz
 ????bar1.tar.gz
 ?   ????foobar1.tar
 ????bar2.tar.gz
 ?   ????foobar2.tar
 ????bar3.tar.gz
 ?   ????foobar3.tar
 ????bar4.tar.gz
 ?   ????foobar4.tar
 ????bar5.tar.gz
 ?   ????foobar5.tar
 ????bar6.tar.gz
 ?   ????foobar6.tar
 |   ..........
 |   ..........
 |   ..........
 |   23 of them
Run Code Online (Sandbox Code Playgroud)

提前致谢。

小智 6

您可以使用--to-command参数将每个提取的文件传递到另一个程序(在stdin上)。在这种情况下,您将其传递到另一个从stdin读取数据的tar实例。

tar --to-command='tar -xzvf -' -xzvf foo.tar.gz
Run Code Online (Sandbox Code Playgroud)


Sta*_*Cub 4

我最终手动提取了 foo.tar.gz 并使用以下 shell 脚本来提取这些 bar*.tar.gz 文件。

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
for next in *.tar.gz
    do
        echo "Untaring - $next"
        tar -xzf $next -C ~/foo
    done
exit 0
Run Code Online (Sandbox Code Playgroud)

希望这会对某人有所帮助。