如何从stdin中提取tar存档?

Cha*_*lie 39 stdin pipeline pipe tar

我有一个大的tar文件split.是否可以cat使用管道来解压缩文件.

就像是:

cat largefile.tgz.aa largefile.tgz.ab | tar -xz
Run Code Online (Sandbox Code Playgroud)

代替:

cat largefile.tgz.aa largfile.tgz.ab > largefile.tgz
tar -xzf largefile.tgz
Run Code Online (Sandbox Code Playgroud)

我一直在四处寻找,但我找不到答案.我想看看是否有可能.

Tho*_*hor 66

使用-作为输入文件:

cat largefile.tgz.aa largefile.tgz.ab | tar zxf -
Run Code Online (Sandbox Code Playgroud)

确保按照拆分的顺序捕捉它们.

如果您使用的是zsh,则可以使用multios功能并避免调用cat:

< largefile.tgz.aa < largefile.tgz.ab tar zxf -
Run Code Online (Sandbox Code Playgroud)

或者如果它们按字母顺序排列:

<largefile.tgz.* | tar zxf -
Run Code Online (Sandbox Code Playgroud)