gzip 是GNU/Linux平台下常用的压缩软件,处理后缀名.gz的文件。 gzip 、 gunzip 和 zcat 都可以处理这种格式的。但这些工具只能压缩/解压缩单个文件或数据流,无法直接归档目录和多个文件。但是, gzip 可以同tar 和 cpio 这类归档工具配合使用。
本文本记录gzip的使用方法。
1. 使用 gzip 压缩文件:
gzip filename
上述命令会压缩文件名为filename的文件,并生成filename.gz,注意,原文件会被替换。
2. 解压缩 gzip 文件:
gunzip filename.gz
与gzip相反,gunzip命令用于解压缩,原文件也会被替换掉。
3. 列出压缩文件的属性信息:
gzip -l filename.gz
4. gzip 从 stdin 中读入文件并将压缩文件写出到 stdout
cat file | gzip -c > file.gz
选项 -c 用来将输出指定到 stdout 。该选项也可以与 cpio 配合使用:
ls * | cpio -o | gzip -c > cpiooutput.gz
zcat cpiooutput.gz | cpio -it
5. 指定 gzip 的压缩级别
--fast 或 --best 选项分别提供最低或最高的压缩率。
6. 压缩归档文件
后缀 tar.gz 或.tgz表示的是经过gzip压缩过的 tar 归档文件。
有两种方法可以创建此类文件。
6.1 第一种方法
tar -czvvf archive.tar.gz [FILES]
或者
tar -cavvf archive.tar.gz [FILES]
选项 -z 指明用 gzip 进行压缩,选项 -a 指明根据文件扩展名推断压缩格式。
6.2 第二种方法
分成两步:首先创建一个 tar 归档文件;然后再压缩归档文件
$ tar -cvvf archive.tar [FILES]
$ gzip archive.tar
7. zcat 直接读取gzip格式文件
zcat 命令无需经过解压缩操作就可以将 .gz 文件的内容输出到 stdout 。 .gz 文件不会发生任
何变化。 zcat 类似有点类似cat。
8. 压缩率
可以指定压缩率,它共有9级,其中:
- 1级的压缩率最低,但是压缩速度最快
- 9级的压缩率最高,但是压缩速度最慢。
gzip -5 filename
gzip 默认使用第6级,倾向于在牺牲一些压缩速度的情况下获得比较好的压缩率。