如何将多个文件gzip压缩为一个gz文件?


74

我有100个文件:cvd1.txtcvd2.txt...cvd100.txt

如何gzip100个文件合并成一个.gz文件,这样以后我gunzip的话,我应该有cvd1.txtcvd2.txt...... cvd100.txt分别?

Answers:


40

如果您有拉链,

zip myzip.zip cvd*.txt

不需要tar他们先。


1
@ Kurumi- Windows程序(例如Winzip或7-zip)是否可以识别.zip文件?

1
@托尼 我相信他们会的。我用zip测试了7-zip linux版本,并且能够解压缩。如果需要,也可以使用Windows的GNU zip。

您选择了一种称为zip的不可流式格式,就会丢失zgrep,和各种可以在管道上使用的工具。电力用户使用管道。zcmpzdiff
坦克手六四11/11/14

83

您要将tar文件与gzip生成的tar文件放在一起。

tar cvzf cvd.tar.gz cvd*.txt

要解压缩gzip文件,请执行以下操作:

tar xvzf cvd.tar.gz -C /path/to/parent/dir

这会将您的文件解压缩到/path/to/parent/dir目录下


6
如果使用扩展名.tgz(tar gz的缩写)命名文件,则Windows程序会将其识别为Winzip等可以按原样处理的文件。祝贺SiegeX赢得您的10K!
Shellter

23

您将需要使用tar,如下所示:

tar -czvf file.tar.gz cvd*.txt

tar将文件放在一起,然后gzip执行压缩。

查阅gzip手册页:

如果您希望创建一个包含多个成员的存档文件,以便以后可以独立提取成员,请使用tar或zip等存档器。GNU tar支持-z选项来透明地调用gzip。gzip设计为tar的补充,而不是替代


13

gzip本身对文件结构一无所知。要执行您想要的操作,您需要首先将文件放入某种容器文件(例如tar结构或类似文件),然后对其进行gzip。tar在GNU平台上具有z和j(对于bzip2)开关来执行此操作。


2
开关实际上是“ z”(“ x”用于提取)。不错,您提到了'j'/ bzip2-更严格的压缩。

5

您可以使用以下方法做到这一点:

gzip my_final_filename.gz my_first_file my_second_file ... my_last_file

gunzip my_final_filename.gz

要么

zip my_final_filename.zip my_first_file my_second_file ... my_last_file

unzip my_final_filename.gz

要么

tar cvzf my_final_filename.tar.gz my_first_file my_second_file ... my_last_file

tar -czvf my_final_filename.tar.gz

我认为您的第一个命令无效。至少一般而言。如果它适用于特定的外壳,则应指出它。如果我有足够的代表,我会拒绝投票。
DPM

@DPM是正确的,gzip/gunzip命令不起作用,它将返回错误gzip: my_final_filename.gz: No such file or directory
Bilal

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.