解压文件(尤其是在 Linux 环境中)是一项常规任务。由于 .gz 和 .tgz 文件使用频繁,因此了解这些文件类型的细微差别以及用于管理它们的工具至关重要。本指南将深入探讨 GZ 和 TGZ 文件的世界,提供有关如何有效处理它们的见解和分步说明。
了解 Linux 中的文件压缩
文件压缩对于优化存储和确保高效数据传输至关重要。在 Linux 中,可以使用各种工具和文件格式来实现这一点,每种工具和文件格式都有独特的特性。
什么使得 TAR、GZ 和 TGZ 文件如此独特?
- TAR 文件说明
- TAR 代表磁带存档。其主要功能是将多个文件捆绑成一个称为 TAR 文件的实体。有趣的是,TAR 不会压缩这些文件;它只是将它们分组,确保它们的原始大小保持不变。
- 深入研究 GZ 文件
- GZ 文件由 Gzip 压缩工具生成。与 TAR 不同,Gzip 会压缩文件,从而减小其大小。但值得注意的是,Gzip 会压缩单个文件。因此,如果您有多个文件,Gzip 将生成等量的 GZ 文件。这种压缩方法是 Linux 和 Unix 系统中的主要方法。
- Fusion:TAR.GZ 文件
- TAR.GZ 文件本质上是使用 Gzip 压缩的 TAR 文件。它是一种混合文件,结合了 TAR 的分组功能和 Gzip 的压缩能力。这种文件类型主要存在于 Linux 和 Unix 系统中。
- TGZ:TAR.GZ 的同义词
- TAR.GZ 文件通常被称为 TGZ 文件。它们本质上是相同的,只是为了方便而使用不同的名称。
- ZIP 文件:快速概览
- ZIP 文件(如 TAR)会捆绑多个文件。但是,它们也会压缩这些文件,类似于 GZ。虽然 ZIP 文件在各种操作系统中随处可见,但它们最常与 Windows 相关。
Tarball 或 Tarfile:名称代表什么?
术语 tarball 或 tarfile 通俗地用于描述特定 TAR 格式的存档文件:
- TAR 文件:本质上是一个磁带档案文件。
- TAR.GZ 或 TGZ 文件:这是 TAR 文件经过 Gzip 压缩的时候。
- TAR.BZ2 或 TBZ 文件:当对 TAR 文件应用 Bzip2 压缩时,就会出现这种格式。
tarball 本质上是捆绑在一起的文件集合。tar 命令生成这些文件。虽然 tar 本身不支持压缩,但它经常与 Gzip 或 Bzip2 等压缩工具协作以节省磁盘空间。这些实用程序通常压缩单个文件,因此它们与 tar 协同工作,从多个文件生成单个文件。
Linux 中用于 GZ 和 TGZ 文件的 Tar、Gzip/Gunzip
服用 和 Gzip 是 Linux 生态系统中的中坚力量,以其文件归档和压缩功能而闻名。虽然它们经常协同工作,但它们的用途却截然不同:
- Tar 实用程序的作用
- 服用 将多个文件合并为一个单一的存档,通常称为 tarball。此存档保留封装文件的文件系统属性,例如权限和所有权。创建后,用户仍然可以修改存档,添加或删除文件或调整文件名,除非存档已压缩。
tar
命令是管理 Linux 中的 TAR 和 TAR.GZ 文件的首选,方便创建、修改和提取这些文件。 - 从历史上看,tarball 是首选的备份介质,传输到本地磁带驱动器,因此得名磁带存档 (Tar)。虽然 Tar 不会压缩文件,但现代用法总是涉及压缩以节省磁盘空间并促进系统间传输。
- Tar 用途广泛,支持多种压缩方法。Gzip/Gunzip 和 Bzip2/Bunzip2 实用程序占据主导地位,而 Tar-Gzip 联盟则成为 Linux 的首要文件归档解决方案。
- 服用 将多个文件合并为一个单一的存档,通常称为 tarball。此存档保留封装文件的文件系统属性,例如权限和所有权。创建后,用户仍然可以修改存档,添加或删除文件或调整文件名,除非存档已压缩。
- Linux 中的 Gzip
- Gzip 是 Linux 的顶级文件压缩实用程序。它可以独立运行,压缩单个文件。当 Gzip 压缩文件时,它会生成一个新的压缩版本,而原始版本通常会被丢弃。生成的压缩文件没有 GZ 扩展名。因此,当 Gzip 与 Tar 协作时,压缩存档会采用 TAR.GZ 或 TGZ 扩展名。
- Gzip 与 Zip 的比较:虽然 Gzip 采用与著名的 Windows 实用程序 Zip 相同的压缩算法,但两者之间存在根本区别。Gzip 压缩单个文件。因此,首先调用 Tar 生成一个 tarball,然后由 Gzip 对其进行压缩。相反,Zip 会在归档文件之前压缩每个文件,从而导致归档大小略大。这种压缩方法使提取单个文件变得复杂,而无需先解压整个 tarball。
在 Linux 中创建和解压缩 GZ 和 TGZ 文件
使用 Tar 和 Gzip/Gunzip 命令,系统管理员可以轻松创建和解压缩 GZ 和 TGZ 文件。与 Linux 类似,这些实用程序包含各种标志,可增强其功能并允许自定义使用。由于 Gzip/Gunzip 和 Tar 是大多数 Linux 发行版不可或缺的一部分,因此只需要 SSH 访问权限和基本的 Linux 命令行知识。
利用 Gzip 和 Gunzip 进行 .gz 文件管理
虽然 Gzip 和 Gunzip 命令可以在 Linux 中解压缩 GZ 文件,但它们在处理压缩的 Tar 档案时却无能为力。例如,尽管 TAR.GZ 文件是 Gzip 压缩的 TAR 档案,但还是需要 Tar 命令进行解压缩和文件提取。
使用 Gzip 压缩文件
Gzip 有助于压缩单个文件,生成新的 GZ 扩展变体,同时保留原始文件的权限和所有权。默认情况下,原始文件在压缩后被丢弃。但是,此行为是可变的。
让我们探索使用 Gzip 对当前目录中的三个文件进行压缩:
# Compress multiple files with GZIP
gzip -kv example1 example2 example3
这里,-k 标志确保原始文件保持完整,而 -v 选项提供实时压缩百分比和文件名显示。该命令在目录中生成三个新的 GZ 文件。在 -k 标志不适用的情况下,可以调用 -c 选项来保留原始文件。
还可以利用 -c 标志来修改新压缩文件的目录,甚至重命名它:
# Compress a file without deletion and relocate it to a different directory
gzip -c example1 > /home/temp/compressed_example1.gz
无需解压即可检查 GZ 文件
Linux 中的 zcat 命令可以让您预览压缩文件的内容,而无需解压缩:
# Display the contents of a GZIP compressed file
zcat compressed_example1.gz
解压 GZ 文件
通过在 Gzip/Gunzip 命令后附加 -d 标志,可以在 Linux 中解压缩 GZ 文件。所有之前讨论过的标志仍然适用。默认情况下,除非调用 -k 标志,否则解压缩后会丢弃 GZ 文件。让我们在同一目录中解压缩之前压缩的 GZ 文件:
# Decompress GZ file
gzip -dv compressed_example1.gz
在此上下文中,以下命令是同义词:
使用 gunzip 命令:
# Decompress GZ file
gunzip example.gz
使用 gzip -d 命令:
# Decompress GZ file
gzip -d example.gz
使用 Tar 进行 TGZ 文件管理
tar 命令是 Linux 中管理 TGZ 文件的关键。用户可以解压整个存档或挑选特定的文件或目录。
创建 tar.gz 存档
在创建 Gzip 压缩的 Tar 存档之前,请确定要包含的文件并确定其分组策略。您可以手动选择文件,也可以存档整个目录及其子目录。与对单个文件进行操作的 Gzip 不同,创建 Gzip 压缩的 Tar 存档不会删除原始文件。
# Construct a TGZ archive of a directory and relocate it to a different folder
tar -czvf archive.tar.gz directory_name -C /home/temp
在此命令中:
c
启动档案创建。z
触发 Gzip 压缩。v
激活详细模式,提供详细的命令执行输出。f
指定新档案的文件名。C
指定备用目标目录。
检查档案内容
-t 标志有助于检查现有 TGZ 存档文件的内容。此外,用户可以使用管道来精确定位特定文件,尤其是在大型存档中:
# Enumerate the contents of a TGZ archive
tar -tvf archive.tar.gz
解压缩 tar.gz 文件
可以使用 tar 命令提供的 -x(提取)标志解压缩 Gzip 压缩的 Tar 档案。默认情况下,Tar 会提取 TGZ 文件的内容并将其发送到当前工作目录。但是,用户可以指定备用目录进行提取:
# Decompress Tar Gz file and relocate uncompressed files to a different directory
tar -xzvf archive.tar.gz -C /home/temp
通常,用户可能需要从 TGZ 存档中提取特定文件或文件夹。 tar
命令有助于实现这一点:
# Validate the desired file's presence in the archive
tar -tvf archive.tar.gz | grep desired_file
由于文件位于存档目录中,因此直接提取而不恢复整个目录具有挑战性。 strip-components 选项绕过了这一障碍,允许用户提取所需的文件或目录而不提取其父文件夹。 用户必须指定文件或目录的完整路径才能进行提取:
# Extract a specific file from the Tar Gz archive
tar -xzvf archive.tar.gz path/to/desired_file --strip-components=2
结论
管理 GZ 和 TGZ 文件是 Linux 用户不可或缺的技能。这些文件格式对于 Linux 生态系统中的数据压缩和归档至关重要。通过掌握 Gzip 和 Tar 命令,用户可以有效地管理、压缩和解压缩数据,确保最佳存储和数据传输。无论您是经验丰富的 Linux 用户还是新手,了解这些命令及其细微差别都可以显著简化您的任务并增强您的 Linux 体验。