在 Linux 中使用 gzip 和 gunzip


介绍

在 Linux 中工作时,通常会遇到需要压缩以进行存储或传输的大文件。Linux 中一种流行的压缩工具是 gzip,它用于压缩文件以节省磁盘空间并减少传输时间。在本文中,我们将探讨如何在 Linux 中使用 gzip 和 gunzip,包括如何压缩和解压缩文件,以及如何处理压缩的归档文件。

什么是 gzip?

Gzip 是 Linux 和其他基于 Unix 的系统中使用的压缩实用程序工具。它用于压缩和解压缩文件,从而减小文件大小以进行存储和传输。Gzip 通过用较短的表示形式替换文件中重复出现的字符串来工作。当文件解压缩时,原始数据将从较短的表示形式中重建。

如何使用 gzip

要使用 gzip 压缩文件,可以使用以下命令:

gzip file.txt

此命令将压缩名为 file.txt 的文件并创建一个名为 file.txt.gz 的新文件。原始文件将被删除,压缩文件将保存在其位置。

要解压缩使用 gzip 压缩的文件,可以使用以下命令:

gunzip file.txt.gz

此命令将解压缩文件 file.txt.gz 并创建一个名为 file.txt 的新文件。压缩文件将被删除,解压缩文件将保存在其位置。

如何使用 gzip 选项

Gzip 还提供了一些可用于修改其行为的选项。以下是一些常用选项:

  • -c - 将输出写入标准输出 (stdout),原始文件保持不变。当您想压缩文件并将其直接发送到另一个程序或设备而无需创建新的压缩文件时,这很有用。

gzip -c file.txt > compressed_file.txt.gz

此命令压缩 file.txt 并将压缩输出写入 stdout。> 运算符将输出重定向到名为 compressed_file.txt.gz 的新文件。

  • -d - 解压缩压缩文件。此选项与 gunzip 命令相同。

gzip -d file.txt.gz

此命令解压缩 file.txt.gz 并创建一个名为 file.txt 的新文件。

  • -f - 即使文件已存在或它是符号链接,也强制压缩或解压缩。

gzip -f file.txt

此命令压缩 file.txt,如果它已存在则覆盖它。

  • -r - 递归压缩目录中的所有文件。

gzip -r directory/

此命令压缩目录 / 目录及其子目录中的所有文件。

处理压缩的归档文件

除了压缩单个文件外,gzip 还可用于创建和提取压缩的归档文件。压缩的归档文件是已压缩到单个文件中的一组文件和目录,以便于存储和传输。

要使用 gzip 创建压缩的归档文件,可以使用以下命令:

tar czf archive.tar.gz directory/

此命令创建一个名为 archive.tar.gz 的新压缩归档文件,其中包含目录 / 目录中的所有文件和目录。c 选项告诉 tar 创建一个新归档文件,z 选项告诉 tar 使用 gzip 压缩,f 选项指定输出文件的名称。

要提取使用 gzip 创建的压缩归档文件,可以使用以下命令:

tar xzf archive.tar.gz

此命令将压缩归档文件 archive.tar.gz 的内容提取到当前目录。x 选项告诉 tar 提取归档文件,z 选项告诉 tar 使用 gzip 解压缩,f 选项指定归档文件的名称。

您还可以将 -v 选项添加到 tar 命令以显示归档文件创建或提取的进度。

tar czvf archive.tar.gz directory/
tar xzvf archive.tar.gz

在第一个命令中,v 选项向输出添加详细程度,显示归档文件创建的进度。在第二个命令中,v 选项显示归档文件提取的进度。

gzip 的高级用法

除了 gzip 的基本用法外,还有一些高级功能在某些情况下可能很有用。

使用 gzip 压缩多个文件

要使用 gzip 压缩多个文件,可以使用 *.txt 通配符来选择当前目录中所有扩展名为 .txt 的文件。

gzip *.txt

此命令将压缩当前目录中所有扩展名为 .txt 的文件,并创建扩展名为 .gz 的新压缩文件。

在保留原始文件的同时压缩文件

要使用 gzip 压缩文件同时保留原始文件,可以使用 -k 选项。

gzip -k file.txt

此命令将压缩 file.txt 并创建一个名为 file.txt.gz 的新压缩文件,但原始文件将保留在原位。

使用 gzip 与管道

您可以将 gzip 命令与管道一起使用,以直接从标准输入 (stdin) 压缩数据并将压缩输出发送到标准输出 (stdout)。

cat file.txt | gzip > file.txt.gz

此命令使用 cat 命令读取 file.txt 的内容,并将其传递给 gzip 命令,该命令压缩数据并将其写入 stdout。> 运算符将压缩输出重定向到名为 file.txt.gz 的新文件。

使用 gunzip

gunzip 命令用于解压缩使用 gzip 压缩的文件。以下是一些 gunzip 的高级功能。

使用 gunzip 解压缩多个文件

要使用 gunzip 解压缩多个文件,可以使用 *.gz 通配符来选择当前目录中所有扩展名为 .gz 的文件。

gunzip *.gz

此命令将解压缩当前目录中所有扩展名为 .gz 的文件,并创建具有原始文件名和扩展名的新未压缩文件。

在保留原始文件的同时解压缩文件

要使用 gunzip 解压缩文件同时保留原始文件,可以使用 -k 选项。

gunzip -k file.txt.gz

此命令将解压缩 file.txt.gz 并创建一个名为 file.txt 的新未压缩文件,但原始压缩文件将保留在原位。

结论

在 Linux 中使用 gzip 和 gunzip 是一种简单有效的方式来压缩和解压缩文件和归档文件。通过使用这些命令及其选项,您可以减小文件的大小,节省磁盘空间并加快文件传输速度。无论您是处理单个文件还是压缩的归档文件,gzip 都提供了一种可靠高效的方式来压缩和解压缩您的数据。通过本文提供的示例和选项,您可以立即开始在 Linux 工作流程中使用 gzip 和 gunzip。

更新于: 2023年3月24日

2K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告