在深入研究包管理器之前,了解文件归档和压缩至关重要。当您从网上下载软件时,通常会发现它被打包在归档和压缩格式中。本课程重点介绍用于此目的的两个基本实用程序:tar 和 gzip。
理解归档与压缩
区分归档和压缩非常重要。归档是将多个文件和目录组合成一个文件的过程,称为归档文件。这使得管理和传输一组文件变得更加容易。另一方面,压缩是减小文件大小以节省磁盘空间和加快传输速度的过程。tar 实用程序用于归档,而 gzip 用于压缩。通常,您会看到 gzip and tar 一起使用。
使用 gzip 压缩单个文件
gzip 程序用于压缩 Linux 中的单个文件。当您使用 gzip 压缩文件时,它会被一个带有 .gz 扩展名的文件替换。
压缩文件:
gzip mycoolfile
这将创建 mycoolfile.gz 并删除原始文件。要解压缩文件,您可以使用 gunzip:
gunzip mycoolfile.gz
使用 tar 创建归档文件
虽然 gzip 非常适合压缩,但它不能将多个文件捆绑到一个归档文件中。为此,我们使用 tar(磁带归档)实用程序。使用 tar 创建的文件通常称为“tarball”,并具有 .tar 扩展名。
创建包含多个文件的新归档文件:
tar cvf myarchive.tar file1 file2 directory1
我们来分解一下选项:
c: create(创建)一个新归档。v: verbose(详细)模式,它会列出正在处理的文件。f: file(文件),指定下一个参数是归档文件的名称。
tar 和 gzip 结合的威力
真正的威力来自于将 tar and gzip 一起使用。您可以先创建一个 .tar 归档文件,然后用 gzip 压缩它,从而得到一个 .tar.gz 文件。然而,tar 提供了一种方便的方式,使用 z 选项在单个步骤中处理 tar compression(tar 压缩)。这个过程有时被称为创建 gzip tar 归档文件。
创建压缩归档文件(这是 compress tar gz 文件的常见方法):
tar czvf myarchive.tar.gz file1 file2 directory1
在这里,z 选项告诉 tar 使用 gzip 进行压缩。
提取 tar 和 gzip 归档文件
要从归档文件中提取文件,您需要使用 x 选项。
提取简单的 .tar 归档文件:
tar xvf myarchive.tar
要在一个命令中解压缩并提取 .tar.gz 归档文件,只需再次添加 z 选项即可:
tar xzvf myarchive.tar.gz
我们来回顾一下提取选项:
x: extract(提取)归档中的文件。z: 使用g**z**ip解压缩归档文件。v: verbose(详细)模式,列出正在提取的文件。f: file(文件),指定要提取的归档文件。
A helpful mnemonic for this is: eXtract Zee Very Fast!(一个有用的助记符是:快速提取!)
tar 是一个非常重要但又经常被遗忘的命令。相关 xkcd:https://xkcd.com/1168
其他实用程序
虽然 tar 和 gzip 非常常见,但在您的 Linux 之旅中还会遇到其他归档和压缩格式。这些包括 bzip2(创建 .bz2 文件并使用 tar 中的 j 标志)、xz(使用 J 标志创建 .xz 文件)以及熟悉的 zip/unzip 实用程序。每个都有自己的一套命令和压缩率,但基本概念保持不变。