Linux tar命令 - 如何在Linux中压缩文件

189 阅读4分钟

文件压缩是一个跨越所有平台的基本工具。它可以帮助你减少文件大小,有效地分享文件。而且压缩后的文件也更容易复制到远程服务器。

你还可以压缩旧的和很少使用的文件,并将它们保存起来供将来使用,这有助于你节约磁盘空间。

在这篇文章中,我们将看看如何在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 工作来安排文件压缩,以实现磁盘清理的自动化。我强烈建议你利用这个工具。