如何在 Linux 中使用 gzip 命令
gzip 是一个命令行实用程序,允许我们创建和提取 .gz 档案。gzip 命令为每个文件创建一个压缩文件。如果我们想把多个文件或一个目录压缩成一个压缩文件,我们需要使用 tar 命令创建一个 .tar 档案,然后使用 gzip 命令压缩 .tar 档案。使用 gzip 命令压缩音频文件、图像文件和其他二进制文件不是特别推荐,因为它们已经被压缩了。
gzip 语法
gzip [OPTION]... [FILE]...
[FILE]... 代表要压缩的文件,[OPTION]... 代表自定义压缩或解压过程的选项。
使用 gzip 压缩文件
使用 gzip 压缩文件的命令是
gzip filename
这将使用 gzip 将 filename 压缩成 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.py、file.py 和 process.py 压缩成各自的 .gz 文件,分别为 main.py.gz、file.py.gz 和 process.py.gz。
使用 gzip 压缩一个目录内的所有文件
要使用 gzip 压缩一个目录内的所有文件,我们使用 gzip 命令的 -r 选项。
gzip -r test_dir
它将 test_dir 内的每一个单独的文件压缩成各自的压缩文件,以 .gz 结尾。
使用 gzip 解压文件
要使用 gzip 解压 .gz 文件,我们使用 gzip 命令的 -d 选项。
gzip -d filename.gz
它使用 gzip 将 filename.gz 解压成 filename 并删除压缩后的文件。
我们也可以用 gunzip 命令解压 .gz 文件。
gunzip main.py.gz
它用 gzip 将 main.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.gz、file.py.gz 和 process.py.gz 文件解压成 main.py、file.py 和 process.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
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn