文件压缩是一个跨越所有平台的基本工具。它可以帮助你减少文件大小,有效地分享文件。而且压缩后的文件也更容易复制到远程服务器。
你还可以压缩旧的和很少使用的文件,并将它们保存起来供将来使用,这有助于你节约磁盘空间。
在这篇文章中,我们将看看如何在Linux中用tar 命令压缩文件,以及一些tar 的实际例子。
什么是tar命令?
我们使用tar 命令从命令行中压缩和扩展文件。语法如下所示:
tar [flags] destinationFileName sourceFileName
tar 命令使用下列标志来定制命令的输入:
| 标志 | 解释 | 用法 |
|---|---|---|
| -c | 创建一个新的存档。 | 每当我们需要创建一个新的存档时,我们都会使用这个标志。 |
| -z | 使用 gzip 压缩。 | 当我们指定这个标志时,这意味着将使用 gzip 压缩来创建存档。 |
| -v | 提供冗长的输出。 | 提供 -v 标志显示压缩文件的细节。 |
| -f | 存档文件名。 | 归档文件名使用 -f 标志进行映射。 |
| -x | 从压缩文件中提取。 | 当需要从档案中提取文件时,我们使用这个标志。 |
如何创建一个归档文件
我们有一个以下文件的列表,我们将用tar 来压缩:

要压缩的文件列表。
为了压缩它们,我们将使用tar ,像这样:
tar -czvf logs_archive.tar.gz *
让我们分解这个命令,看看每个标志:
-c 正在创建和存档
-z 正在使用gzip压缩
-v 提供被归档的文件的细节
-f 正在创建一个名字为 "logs_archive.tar.gz "的归档文件,正如上面的命令所提供的
在下面的结果中,我们可以看到存档已经成功创建:

归档文件已经用提供的命令创建。
如何删除压缩后的文件
假设我们不想在创建归档后保留原始文件。为此,我们可以使用--remove-files 标志:
tar -czvf logs_archive.tar.gz * --remove-files

创建归档后删除的文件
在这里,-czvf 标志的作用与之前演示的一样,但原始文件也被删除。一旦我们列出文件,我们就只能看到存档。
如何查看存档的内容
你可能需要查看存档的内容,而不需要实际提取它。你可以用-t 标志来做到这一点:
tar -tvf logs_archive.tar.gz
在这个命令中,-t 标志指定我们只需要查看存档的内容。-f 指定文件名,-v 显示详细内容。

查看存档的内容。
如何提取存档
要从归档文件中提取文件,你可以像这样使用-x 标志:
tar -xzvf logs_archive.tar.gz
让我们把这个命令分解开来,看看每个标志:
-x 正在提取和存档
-z 指定存档是gzip的
-v 提供被归档的文件的细节
-f 从名为 "logs_archive.tar.gz "的存档中提取

提取一个归档文件。
这里有一个有用的提示:需要长时间执行的命令可以在后台继续执行,& 。
将文件添加到归档文件和提取归档文件可能需要一段时间。要在你继续工作时保持命令在后台运行,可以像这样将命令与& :
tar -xzvf logs_archive.tar.gz &
如何在压缩的日志文件中搜索
一旦某些文件被归档,你可能仍然需要访问它们。幸运的是,你可以用一种方法来搜索和查看压缩的日志文件,而不需要解压和影响磁盘空间。
你可以使用的搜索压缩文件的命令是zgrep 。

档案中'audit.log'文件的内容。
我们可以使用下面的命令在归档文件中搜索一个字符串:
zgrep -Hna 'string-to-search' compressedFile.tar.gz
让我们简单地看看这些标志:
-H 列出包含匹配内容的文件名
-n 显示包含匹配字符串的行号
-a 将所有文件视为文本文件
这就是结果:

总结
文件压缩帮助我们在共享文件时节省时间和资源。服务器几乎总是在旋转和归档巨大的日志文件。
你也可以通过cron 工作来安排文件压缩,以实现磁盘清理的自动化。我强烈建议你利用这个工具。