在 Linux 中使用 Gzip 命令的 13 个实例
压缩是用户使用gzip实用程序通过网络传输大量数据时非常常用的操作,以节省磁盘空间以及减少时间和带宽。
gzip代表GNU zip,是一种非常流行的压缩和解压缩实用程序。它受欢迎的主要原因之一是其高压缩率和速度,这意味着压缩后的数据在解压后保持不变。
gzip命令使用 deflate 算法,这是一种无损数据压缩,与其他压缩工具相比,它可以创建更小的文件大小,从而使文件传输速度更快。
在本指南中,我们将通过 Linux 中的示例讨论gzip命令的用法。
gzip 命令语法
与任何其他 Linux 命令一样,gzip 命令的语法分为两部分:OPTIONS和FILES。
$ gzip [OPTIONS]... [FILES]...
在上面的语法中,OPTIONS用于改变命令的行为,而FILES代表输入文件。
1. 在 Linux 中创建 Gzip 文件
gzip命令的一个常见用途是压缩大型文件。常见的情况是,大型 ISO 文件或 tar 包会被压缩以节省磁盘空间。
要压缩单个文件,我们只需将文件名传递给 gzip 命令。为了理解这一点,让我们使用以下命令来压缩 ISO 文件:
$ gzip alma-linux.iso
现在,让我们使用ls 命令来验证文件是否已被压缩:
$ ls -l
在上面的输出中,我们可以看到名为alma-linux.iso.gz的新压缩文件。我们还可以观察到,默认情况下, gzip 命令会.gz
为压缩文件添加扩展名。
2. 创建 Gzip 并保留原始文件
在前面的例子中,我们看到了压缩文件是多么容易。但是,如果我们仔细观察,我们会注意到gzip命令在压缩后会删除原始文件。
但是,有时我们也想保留原始文件。在这种情况下,我们可以使用-k
如图所示的选项。
$ gzip -k alma-linux.iso $ ls -l
在上面的输出中,我们可以看到即使压缩后原始文件仍然是完整的。
3.查看.gz文件的内容
要查看压缩文件的内容.gz
,请使用zcat 命令- 该命令允许您无需解压缩即可查看压缩文件的内容。
为了理解这一点,首先,使用重定向运算符创建一个简单的文本文件:
$ echo "zcat example from example.com" > demo $ gzip demo $ ls -l $ zcat demo
在上面的输出中,我们可以看到 zcat显示压缩文件的内容而无需解压缩它。
4.查看.gz 文件的信息
有时,我们想显示有关压缩文件的更多详细信息。 在这种情况下,我们可以使用该-l
选项列出以下字段:
- 压缩大小——它表示压缩文件的大小(以字节为单位)。
- 未压缩大小——它表示未压缩文件的大小(以字节为单位)。
- ratio——代表压缩比。
- uncompressed_name — 代表未压缩文件的名称。
为了理解这一点,让我们执行以下命令:
$ gzip -l alma-linux.iso.gz
5. 无需确认即可覆盖 Gzip 文件
默认情况下,如果已存在同名的压缩文件,则gzip命令将以交互方式工作。为了理解此默认行为,让我们执行上一个示例中的相同命令:
$ gzip -k alma-linux.iso
这里我们可以看到gzip命令正在等待用户输入。现在我们可以使用 来'y'
覆盖文件或者'n'
中止操作。
这种交互式操作是安全的,可以避免错误地覆盖文件。但是,这并不适合每次使用。例如,如果我们从脚本执行gzip-f
命令,那么脚本将无限期地等待用户输入。在这种情况下,我们可以使用强制覆盖文件的选项。
现在,让我们使用以下选项执行相同的命令-f
:
$ gzip -f -k alma-linux.iso
这里我们可以看到现在 gzip 命令以非交互方式工作。
6. 使用 Gzip 压缩多个文件
到目前为止,我们了解了如何压缩单个文件。以类似的方式,我们可以使用gzip命令一次压缩多个文件。
因此,首先,让我们使用以下cp 命令创建该文件的多个副本:
$ cp alma-linux.iso alma-linux-1.iso $ cp alma-linux.iso alma-linux-2.iso $ cp alma-linux.iso alma-linux-3.iso
接下来,让我们使用以下命令压缩这三个文件:
$ gzip alma-linux-1.iso alma-linux-2.iso alma-linux-3.iso $ ls -l
7. 使用 Gzip 压缩目录中的所有文件
在前面的例子中,我们看到了如何压缩多个文件。类似地,我们也可以压缩目录中的所有文件。
为了理解这一点,首先让我们创建一个新目录并在其中添加一些文件:
$ mkdir dir-1 $ touch dir-1/file-1.txt dir-1/file-2.txt dir-1/file-3.txt
现在,让我们使用该选项来压缩dir-1-r
目录中的所有文件:
$ gzip -r dir-1/ $ ls -l dir-1/
在上面的例子中,该-r
选项以递归方式遍历目录。
8. 在 Linux 中解压 Gzip 文件
gzip命令允许我们使用-d
如图所示的选项解压缩文件。
$ gzip -d alma-linux.iso.gz $ ls -l
9. 将 Tar 文件压缩为 Gzip
在前面的两个示例中,我们了解了如何使用单个命令压缩多个文件。但是,我们也可以观察到gzip命令不会将这些文件压缩为单个文件。在这种情况下,我们可以首先创建一个 tar 包,然后使用gzip命令对其进行压缩。
因此,首先,让我们创建一个包含多个文件的 tar 包:
$ tar cvf sample.tar alma-linux-1.iso alma-linux-2.iso
现在,让我们使用以下命令压缩这个 tar 包:
$ gzip sample.tar $ ls -l
10. 加速 gzip 压缩
到目前为止,我们使用非常小的文件来演示 gzip 命令的用法。但在实际场景中,需要压缩的数据可能非常大。
在这种情况下,我们可以使用该--fast
选项来减少压缩时间。
$ gzip --fast alma-linux.iso
值得注意的是,该--fast
选项优先考虑压缩速度而不是比率。
11. 提高 Gzip 压缩率
类似地,我们可以使用该--best
选项来提高压缩率。为了理解这一点,让我们执行以下命令:
$ gzip --best alma-linux.iso
这里,我们应该注意,该--best
选项优先考虑压缩比而不是速度。
12.设置Gzip压缩级别
我们可以在gzip命令中使用一个整数参数来控制压缩速度。有效值范围是 1 到 9。1 表示压缩速度最快,9 表示压缩速度最慢。
例如,以下命令使用 2 作为参数来提高压缩速度:
$ gzip -2 alma-linux.iso
需要注意的是,gzip 默认的压缩级别是 -6,它倾向于高压缩率,但会牺牲速度。
13.更改Gzip文件扩展名后缀
默认情况下,gzip.gz
命令在压缩文件后使用后缀。但是,我们可以使用该--suffix
选项覆盖此默认行为。
例如,我们可以使用以下命令使用gnuzip作为后缀:
$ gzip --suffix .gnuzip alma-linux.iso $ ls -l
在上面的例子中,我们可以看到压缩文件有一个.gnuzip
扩展名。
结论
在本实用指南中,我们讨论了 Linux 中gzip命令的一些常见示例,以便更快地压缩和解压缩文件。
您知道 Linux 中 gzip 命令的其他最佳示例吗?请在下面的评论中告诉我们您的观点。