使用 Linux tar 命令的 4 种方法

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

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

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

我询问了 Opensource.com 的作者他们在日常工作中使用 tar 以及 zipgzip 等相关工具的情况。以下是他们的回答。

备份和日志

每当需要备份或归档整个目录树时,我都会使用 tarzip。例如,向客户交付一组文件,或者只是在对网站进行重大更改之前快速备份我的网站根目录。如果我需要与他人共享,我会使用 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 归档文件,也可以只是任何常规文件,例如日志文件。为了使 gzip 文件尽可能小,我使用 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 非常棒,但不要忘记针对 bzip2 文件的 tar -j,甚至针对高度压缩的 xz 文件的 tar -J

如果您处理的平台 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

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.