如何在Linux中使用tar和gizp命令归档和压缩文件

target="_blank">归档、压缩和提取文件是 Linux 管理员最常见的一些任务。如果您曾经使用过具有 .tar、.tar.gz、.xz 或 .bz2 扩展名的“tarball”文件,那么它很可能是使用 .tar 实用程序创建的。在本文中,我们将演示如何使用该tar实用程序在 Linux 系统上归档、压缩和提取文件。我们将使用 Ubuntu 20.04 作为所有示例,但您可以在任何使用tar.

什么是焦油?

tar— “磁带存档”的缩写 — 是一个用于创建和提取存档的 GNU 命令行工具。

存档是包含多个文件或目录的单个文件。在开源和 Linux 社区中,tarball 是分发源代码和其他重要文件的最常用方法之一。

除了创建档案外,tar还可以使用多种不同的压缩实用程序(例如gzip和bzip2.

tar 与 gzip

在处理 Linux 归档文件时,您可能经常在类似的上下文中听说过tar和。gzip

这两个工具的基本区别是:在压缩文件
tar的同时从多个文件创建存档。gzip

然而,这些工具并不相互排斥。tar可以gzip用来压缩它归档的文件。tar的z开关使tar命令使用gzip。

gzip 与 bzip2 与 xz 压缩

gzip不是唯一tar可以使用的压缩程序。它还支持bzip2和xz。下表详细说明了这些压缩工具之间的一些基本区别。

压缩包 bzip2 xz
压缩算法 放气 伯罗斯-惠勒 LZMA
常用文件扩展名 .tar.gz、.tgz、.gz 焦油.bz2, .bz2 焦油.xz,.xz
tar命令开关 -z -j -J

一般来说,从压缩和性能的角度来看,gzip和是可比的,但使用更广泛。往往会提供最佳的整体压缩,但也需要更多的时间和计算资源。bzip2gzip.xz

注意:在我们的示例中,我们将专注于使用gzip. 在命令中替换-z为-j将使用bzip2而不是 gzip。使用-Jinstead of-z将使用xzinstead of gzip。

如何压缩单个文件或目录

在 Linux 中压缩单个文件或目录的一般命令是:

tar -czvf <archive name> </path/to/file/or/directory>

以下是每个开关的含义:

  • c- 创建档案。
  • z- 通过运行存档gizp
  • v- 详细列出文件。
  • f- 使用特定的存档文件。

例如,要将/pepper目录压缩到名为 的存档egg.tar.gz,请运行以下命令:

tar -czvf egg.tar.gz /pepper

输出将类似于:

tar: Removing leading `/' from member names
/pepper/
/pepper/pepperAndegg.log
/pepper/pepperAndEgg.txt
/pepper/pepperandegg.log

如何在Linux中使用tar和gizp命令归档和压缩文件

如果我们省略v开关而是使用命令tar -czf egg.tar.gz /pepper,输出将不会包括每个文件。相反,它看起来类似于此

tar: Removing leading `/' from member names

如果没有错误或需要从成员名称中删除的字符——例如,如果我们正在压缩当前工作目录中的文件——则不会有输出。

注意:tar指定开关的方法不止一种。您会注意到我们-在指定tar开关之前使用。虽然这是一个常见的约定,但通常并不需要。tar czvf <archive name> </path/to/file/or/directory>也会工作。一样会tar -cf <archive name> -vz </path/to/file/or/directory>。tar我们将坚持我们在其余示例中使用的约定,但请记住,指定选项的方法不止一种。

如何将多个文件或目录压缩到一个存档

在 Linux 中压缩单个文件或目录的一般命令是:

tar -czvf <archive name> </path/to/file/or/directory1> </path/to/file/or/directory2> ... </path/to/file/or/directoryN>

例如,要将文件one.txt、two.mp4和压缩three.iso到名为 的存档egg.tar.gz,请运行以下命令:

tar -czvf egg.tar.gz one.txt two.mp4 three.iso

如何在Linux中使用tar和gizp命令归档和压缩文件

归档时如何排除目录和文件

如果您指定一个目录来创建存档,则可能有一些文件要从存档中排除。该--exclude选项允许您指定要从存档中排除的模式。
任何与传递给--exclude选项的模式相匹配的文件都不会包含在存档tar创建中。

tar从存档中排除文件的一般命令是:

tar --exclude=<PATTERN> <Options> <archive name> </path/to/directory>

例如,假设我们的/pepper目录中有这些文件:

  • 一个.txt
  • 二.mp4
  • 三.iso
  • 四.日志
  • 输出.log

我们希望将除 .log 文件之外的所有内容压缩到egg.tar.gz存档中。我们可以使用这个命令:

tar --exclude='*.log' -czvf egg.tar.gz /pepper 

如何在Linux中使用tar和gizp命令归档和压缩文件

如果需要,您可以--exclude在单个命令中指定多个模式。

如何将文件添加到现有存档

如果你有一个现有的档案并且你想向它添加文件,你可以使用-r或--append选项。附加到 .tar 档案的一般命令是:

tar -rf <tar archive> </path/to/file>

但是,-r与--append压缩档案不兼容。这意味着您只能将它们与未通过压缩程序(如 、 或 )运行的 tarballgzip一起bzip2使用xz。
如果您尝试在压缩存档上使用-r或--append,您可能会看到类似于以下内容的错误:

tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now

由于此限制以及 和 的其他一些细微差别-r,--append在许多情况下,使用附加文件创建新存档会更容易。

如何列出档案的内容

-t您可以使用或--list选项列出存档的内容。列出档案内容的一般命令是:

 tar -tvf <archive>

和选项适用于压缩和未压缩的档案-t。 --list

例如,要列出egg.tar.xz当前工作目录中存档的内容,请运行以下命令:

tar -tvf egg.tar.xz

如何在Linux中使用tar和gizp命令归档和压缩文件

如何提取档案

tar的-x开关用于提取档案。在 Linux 中提取存档的一般命令是:

tar -xf <archive>

该tar -xf命令适用于压缩和未压缩的档案。

例如,要egg.tar.gz在我们当前的工作目录中提取一个档案,我们可以使用这个命令:

tar -xf egg.tar.gz

如何在Linux中使用tar和gizp命令归档和压缩文件

如何将档案提取到特定目录

在某些情况下,您可能希望将文件提取到当前工作目录以外的目录中。tar的-C开关在这种情况下很有用。
将档案提取到特定目录的一般命令是:

tar -xf <archive> -C </path/to/destination>

例如,要将我们的egg.tar.gz存档提取到/tmp/cherry,我们可以使用以下命令:

tar -xf egg.tar.gz -C /tmp/cherry

如何在Linux中使用tar和gizp命令归档和压缩文件

结论

现在您已经了解了使用 .tar 的基础知识tar,您可以像专业人士一样使用“tarballs”。请记住,tar它是灵活的,您可以组合不同的开关来产生不同的结果并调整输出。要深入了解tar,请查看官方GNU tar 手册

文章链接: https://www.mfisp.com/13499.html

文章标题:如何在Linux中使用tar和gizp命令归档和压缩文件

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
IDC云库

虚拟基础架构:让您的IT基础架构焕然一新的现代化方式

2022-11-30 14:11:11

IDC云库

如何在Ubuntu 20.04上安装和开始使用MongoDB

2022-11-30 15:26:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
客户经理
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠