将多个 GZIP 压缩文件合并到一个 tar 文件中



我有一个非常大的tar文件,其中包含许多gzip文件。我想将所有 gzip 文件合并到一个 gzip 文件中并放在另一个目录中。要查看我使用的 tar 文件的内容,请执行以下操作:

tar -zxvf Big.tar

这给了:

Big/FileA.gz
Big/FileB.gz
Big/FileC.gz
Big/FileD.gz

要正常合并多个 gzip 文件,我会移动到该目录并使用:

cat FileA.gz FileB.gz FileC.gz FileD.gz > BigFile.gz

但是,BigFile.gz将保留在该目录中。我只是不确定如何在 tar 文件中执行此操作以及如何将组合文件写入另一个目录。

使用 GNU tar,你可以做到:

tar -Oxf Big.tar --wildcards 'Big/*.gz' > /tmp/your_file.gz

使用 OS X tar,您必须单独列出文件:

tar -Oxf Big.tar Big/FileA.gz Big/FileB.gz > /tmp/your_file.gz

两者的显著特点是 -O ,它将文件写入标准输出。

以下是 GNU 系统上的示例脚本:

$ pwd
/home/me
$ tar tf Big.tar
Big/
Big/foo.txt.gz
Big/bar.txt.gz
$ tar -Oxf Big.tar --wildcards 'Big/*.gz' > /tmp/your_file.gz
$ zcat /tmp/your_file.gz
This is the contents of foo.txt
This is the contents of bar.txt

使用 tar 并假设文件夹 Big 有 FileA.gz、FileB.gz 等:

tar -czv -f /path/to/final/BigFile.gz -C Big .

相关内容

  • 没有找到相关文章

最新更新