16

可以说我有 3 个 file: 1.txt2.txt并且3.txt都被压缩了。我知道 gzip 允许使用 cat 组合多个文件:

cat 1.gz 2.gz 3.gz > 123.gz

然而,当 123.gz 被提取时,它将产生原始的 3 个文件。

是否可以将三个档案合并为档案中的单个文件也将合并为一个文件?

4

2 回答 2

23

令人惊讶的是,这实际上是可能的。

GNU zip 手册页指出:可以连接多个压缩文件。在这种情况下,gunzip 将一次提取所有成员。

例子:

您可以像这样构建 zip:

echo 1 > 1.txt ; echo 2 > 2.txt; echo 3 > 3.txt;
gzip 1.txt; gzip 2.txt; gzip 3.txt;
cat 1.txt.gz 2.txt.gz 3.txt.gz > all.gz

然后提取它:

gunzip -c all.gz > all.txt

的内容all.txt现在应该是:

1
2
3

这与以下内容相同:

cat 1.txt 2.txt 3.txt

并且——正如你所要求的——“gunzip 将立即提取所有成员”。

于 2013-05-23T13:47:09.403 回答
4

为了连接多个文件,请尝试:

gzip -c 1.txt > 123.gz
gzip -c 2.txt >> 123.gz
gzip -c 3.txt >> 123.gz

随后,gzip -dc 123.gz将等价于cat 1.txt 2.txt 3.txt

于 2013-05-23T13:48:26.520 回答