2012-12-15 57 views
0

我有一个只消耗未压缩文件的程序。我有几个.gz文件,我的目标是将它们连接到该程序。如果我有一个tar.gz文件,我可以使用archivemont命令挂载tar.gz存档。如何在不解压缩的情况下将gz文件合并到tar.gz中?

我知道我可以连接的GZ文件:

cat a.gz b.gz > c.gz 

但也没办法,我是知道的,安装一个GZ文件。我没有足够的磁盘空间来解压缩所有文件和tar命令不接受标准输入的输入,所以我不能做到这一点:

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

回答

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。

相关问题