如何在 Linux 中使用 gzip 命令

Suraj Joshi 2023年1月30日 2020年9月26日
  1. gzip 语法
  2. 使用 gzip 压缩文件
  3. 使用 gzip 解压文件
  4. 使用 gzip 命令列出压缩文件的详细信息
如何在 Linux 中使用 gzip 命令

gzip 是一个命令行实用程序,允许我们创建和提取 .gz 档案。gzip 命令为每个文件创建一个压缩文件。如果我们想把多个文件或一个目录压缩成一个压缩文件,我们需要使用 tar 命令创建一个 .tar 档案,然后使用 gzip 命令压缩 .tar 档案。使用 gzip 命令压缩音频文件、图像文件和其他二进制文件不是特别推荐,因为它们已经被压缩了。

gzip 语法

gzip [OPTION]... [FILE]...

[FILE]... 代表要压缩的文件,[OPTION]... 代表自定义压缩或解压过程的选项。

使用 gzip 压缩文件

使用 gzip 压缩文件的命令是

gzip filename

这将使用 gzipfilename 压缩成 filename.gzip 并删除原始文件。

如果我们想保留原来的文件,我们使用命令中的 -k 选项。

gzip -k main.py

它将文件 main.py 压缩成 main.py.gz 并保留原文件。

另一种保留原始文件的方法是使用 -c 选项,它引导 gzip 命令将输出写在标准输出上,我们将标准输出重定向到 .gzip 文件。

gzip -c main.py > main.py.gz

同时,它还通过保留原文件,将 main.py 文件压缩成 main.py.gz

为了得到详细的输出,我们使用 -v 选项。

gzip -v main.py

输出:

main.py:         18.6% -- replaced with main.py.gz

从输出结果中,我们可以看到压缩过程中文件大小减少的百分比。

使用 gzip 一次压缩多个文件

要使用 gzip 一次压缩多个文件,我们使用 gzip 命令,后面用空格隔开要压缩的文件名。

gzip main.py file.py process.py

它将文件 main.pyfile.pyprocess.py 压缩成各自的 .gz 文件,分别为 main.py.gzfile.py.gzprocess.py.gz

使用 gzip 压缩一个目录内的所有文件

要使用 gzip 压缩一个目录内的所有文件,我们使用 gzip 命令的 -r 选项。

gzip -r test_dir

它将 test_dir 内的每一个单独的文件压缩成各自的压缩文件,以 .gz 结尾。

使用 gzip 解压文件

要使用 gzip 解压 .gz 文件,我们使用 gzip 命令的 -d 选项。

gzip -d filename.gz

它使用 gzipfilename.gz 解压成 filename 并删除压缩后的文件。

我们也可以用 gunzip 命令解压 .gz 文件。

gunzip main.py.gz

它用 gzipmain.py.gz 解压成 main.py,并删除压缩后的文件 main.py.gz

如果我们想在解压过程中也保留压缩文件,我们可以使用命令中的 -k 选项。

gzip -dk main.py.gz

它通过保留解压后的文件,将文件 main.py.gz 解压成 main.py

使用 gzip 一次解压多个文件

要使用 gzip 一次压缩多个文件,我们使用 gzip 命令,在 -d 选项后加上要解压的文件名,并以空格分隔。

gzip -d main.py.gz file.py.gz process.py.gz

它将 main.py.gzfile.py.gzprocess.py.gz 文件解压成 main.pyfile.pyprocess.py 三个文件。

使用 gzip 解压一个目录内的所有文件

要使用 gzip 解压一个目录内的所有文件,我们使用 gzip 命令中的 -r 选项和 -d 选项。

gzip -dr test_dir

它将 test_dir 内的每一个单独的压缩文件解压成各自的解压文件。

使用 gzip 命令列出压缩文件的详细信息

当使用 -l 选项时,gzip 命令也可以用来获取压缩文件的详细信息。

gzip -l main.py.gz

输出:

         compressed        uncompressed  ratio uncompressed_name
                 28                   0   0.0% main.py
                 

它列出了所有关于 main.py.gz 文件的细节。

为了获得更多的细节,我们添加 -v 选项。

gzip -l main.py.gz

输出:

method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 00000000 Sep  8 22:15                  28                   0   0.0% main.py
Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn