4 种使用 Linux tar 命令的方法

您如何使用 tar 命令? 这就是我最近向我们的作者社区提出的问题。 以下是他们的一些回答。
8 位读者喜欢这篇文章。
women programming

WOCinTech Chat。 由 Opensource.com 修改。 CC BY-SA 4.0

当您有很多相关文件时,有时将它们视为单个对象比 3 个、20 个或 100 个唯一文件更容易。 例如,当您发送一个文件而不是发送 30 个单独的文件所需的鼠标操作时,点击次数会更少。 几十年前,当程序员发明了一种创建归档的方法时,这个问题就解决了,因此 tar 命令诞生了(这个名字代表磁带归档,因为那时文件被保存到磁带上。) 今天,tar 仍然是将文件捆绑在一起的有用方法,无论是压缩它们以减少它们在驱动器上占用的空间,还是为了更容易处理大量文件,还是为了方便地将文件在逻辑上分组在一起。

我询问 Opensource.com 的作者他们在日常工作中使用 tar 以及 zipgzip 等相关工具的方式。 以下是他们的说法。

备份和日志

每当我需要备份或归档整个目录树时,我都会使用 tarzip。 例如,向客户交付一组文件,或者只是在对网站进行重大更改之前快速备份我的 Web 根目录。 如果我需要与他人共享,我会使用 zip -9r 创建一个 ZIP 归档文件,其中 -9 使用最佳压缩,而 -r 将递归到子目录中。 例如,zip -9r client-delivery.zip client-dir 会创建我的工作的 zip 文件,我可以将其发送给客户。

如果备份仅供我个人使用,我可能会改用 tar。 当我使用 tar 时,我通常使用 gzip 进行压缩,并且我使用 tar czf 在一个命令行上完成所有操作,其中 c 将创建一个新的归档文件,z 使用 gzip 压缩它,而 f 设置归档文件名。 例如,tar czf web-backup.tar.gz html 会创建我的 html 目录的压缩备份。

我还有创建日志文件的 Web 应用程序。 为了防止它们占用太多空间,我使用 gzip 压缩它们。 gzip 命令是压缩单个文件的好方法。 这可以是 TAR 归档文件,也可以只是任何常规文件,例如日志文件。 为了使 gzipped 文件尽可能小,我使用 gzip -9 压缩文件,其中 -9 使用最佳压缩。

使用 gzip 压缩文件的优点是,我可以稍后使用 zcatzless 等命令查看它们,而无需在磁盘上解压缩它们。 因此,如果我想查看昨天的日志文件,我可以使用 zless yesterday.log.gzzless 命令会自动使用 gunzip 解压缩数据并将其发送到 less 查看器。 最近,我想查看我每天有多少日志条目,我使用类似下面的 zcat 命令运行了该命令

for f in *.log.gz; do echo -n "$f,"; zcat $f | wc -l; done

这会生成一个逗号分隔的日志文件列表和行计数,我可以轻松地将其导入到电子表格中进行分析。

Jim Hall

Zcat

我在我的文章 cat 命令入门 中介绍了 zcat 命令。 也许这可以作为进一步讨论“就地”压缩数据分析的刺激。

Alan Formy-Duval

Zless 和 lzop

我喜欢使用 zless 浏览日志文件和归档文件。 它确实有助于降低留下我尚未清理的随机旧日志文件的风险。

在处理压缩归档文件时,tar -zxftar -zcf 非常棒,但不要忘记 tar -j 用于 bzip2 文件,甚至 tar -J 用于高度压缩的 xz 文件。

如果您正在处理 CPU 资源有限的平台,您甚至可以考虑像 lzop 这样的低开销解决方案。 例如,在源计算机上

tar --lzop -cf - source_directory | nc destination-host 9999

在目标计算机上

nc -l 9999 | tar --lzop -xf -

我经常使用它来压缩系统之间的数据,我们在这些系统之间存在带宽限制,并且需要低资源选项。

Steven Ellis

Ark

我发现自己最近在使用 KDE 应用程序 Ark。 这是一个 GUI 应用程序,但它与 Dolphin 文件管理器集成得非常好,以至于我已经养成了直接将文件更新到归档文件中的习惯,甚至无需费心解压缩整个文件。 当然,您可以使用 tar 命令执行相同的操作,但如果您无论如何都在 Dolphin 中浏览文件,Ark 可以让您快速轻松地与归档文件交互,而不会中断您当前的工作流程。

Ark

(Seth Kenlon, CC BY-SA 4.0)

归档文件曾经给我的感觉有点像一个禁地。 一旦我将文件放入归档文件中,它们就如同被遗忘了一样,因为与归档文件交互并不总是很方便。 但是 Ark 允许您预览文件而无需解压缩它们(从技术上讲,它们正在被解压缩,但它“感觉”不像它们正在被解压缩,因为这一切都是就地发生的),从归档文件中删除文件,更新文件,重命名文件等等。 这是一种非常出色且动态的与归档文件交互的方式,这鼓励我更频繁地使用它们。

Seth Kenlon

AmyJune headshot
AmyJune 是一位经验丰富的社区经理、导师、公开演讲者和包容性倡导者。 虽然她的根基在 Drupal 中,但她也定期为 Linux 和辅助功能社区做出贡献。

6 条评论

我在 Unix 上工作的第一个地方,使用 cpio 进行备份并通过磁带发送软件更新。 我工作的下一个地方使用了 tar,但我总是记不住如何创建备份。 幸运的是,我们使用的是 Motorola Powerstacks,并且在该 Unix 实现中,cpio 命令有一个选项可以创建 tar 格式的备份,反之亦然。 我认为 Motorola Powerstacks 看起来像高保真音响。

(希望这没有离题)
我现在很少使用“tar”了。 不知何故,我更喜欢使用“git”和“rsync”来归档任何东西。
这就是方法!

最初我将其理解为这四种情况
* 压缩
* 解压
* 列表
* 测试
在浏览文章时,我脑海中浮现了以下“方法”
* 基于文件的操作
* 重定向 io 流操作
* 控制台打印
* 混合
但实际上,这篇文章是关于最终用户应用程序互连和相关用例。

Alan 的 “cat 命令入门” 链接,
https://open-source.net.cn/Getting%20Started%20with%20the%20Cat%20Command
在我的浏览器中不起作用。

此链接有效
https://open-source.net.cn/article/19/2/getting-started-cat-command

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.