开发者

How to extract nested tar.gz files easily?

开发者 https://www.devze.com 2022-12-29 14:29 出处:网络
I need to extract tar.gz a file. It\'s about 950mb. It has another 23 tar.gz files in it. Each of those 23 tar.gz files has one tar file in them. My questions is how I can easily extract all of them?

I need to extract tar.gz a file. It's about 950mb. It has another 23 tar.gz files in it. Each of those 23 tar.gz files has one tar file in them. My questions is how I can easily extract all of them? Is there a com开发者_运维技巧mandline tool that I can use?

The structure is like the following:

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

Thanks in advance.


You can use the --to-command argument to pass each extracted file to another program (on stdin). In this case, you pass it to another tar instance reading data from stdin.

tar --to-command='tar -xzvf -' -xzvf foo.tar.gz


I ended up manually extracted foo.tar.gz and using the following shell script to extract those bar*.tar.gz files.

#!/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

hope this will help someone.


Yup.

tar -xzOf foo.tar.gz bar1.tar.gz | tar -xO foobar1.tar

Should do the trick.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号