HOWTO · Linux

如何在 Linux 中使用 gzip 命令

我们可以使用 gzip 命令来压缩和提取.gz 或.z 格式的文件。

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