在 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 选项指定存档文件的名称。
您还可以向 tar 命令添加 -v 选项以显示存档创建或提取的进度。
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 命令用于解压缩经过 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。