如何在没有解压缩的情况下将gz文件合并到tar.gz中?

时间:2012-12-15 13:13:22

标签: gzip tar

我有一个只消耗未压缩文件的程序。我有几个.gz文件,我的目标是将它们连接到该程序。如果我有一个tar.gz文件,我可以使用archivemont命令安装tar.gz存档。

我知道我可以连接gz文件:

cat a.gz b.gz > c.gz

但是我知道没有办法安装gz文件。我没有足够的磁盘空间来解压缩所有文件,tar命令不接受stdin作为输入,所以我不能这样做:

zcat *.gz | tar - | gzip > file.tar.gz

1 个答案:

答案 0 :(得分:0)

目前尚不清楚需要在tar.gz存档上执行哪些操作。但是从我能看出的情况来看,tar.gz不是这个应用程序的格式。整个存档流由gzip压缩,因此您无法在不重新压缩文件之后拉出或更改文件。 tar.gz流可以专门准备,以保持每个文件的压缩独立,但是你也可以使用.zip格式,它更适合随机访问和操作档案中的单个文件。

为了解决你的一个评论,tar实际上可以接受stdin作为输入。有关一些示例,请参阅pipe tar extract into tar create,其中GNU tar和BSD tar(使用不同的语法)可以从stdin获取tar文件,删除条目,并将新的tar文件写入stdout。