target="_blank">归档、压缩和提取文件是Linux管理员最常见的一些任务。如果您曾经使用过具有.tar、.tar.gz、.xz或.bz2扩展名的“tarball”文件,那么它很可能是使用.tar实用程序创建的。在本文中,我们将演示如何使用该tar实用程序在Linux系统上归档、压缩和提取文件。我们将使用Ubuntu20.04作为所有示例,但您可以在任何使用tar.
tar—“磁带存档”的缩写—是一个用于创建和提取存档的GNU命令行工具。
存档是包含多个文件或目录的单个文件。在开源和Linux社区中,tarball是分发源代码和其他重要文件的最常用方法之一。
除了创建档案外,tar还可以使用多种不同的压缩实用程序(例如gzip和bzip2.
在处理Linux归档文件时,您可能经常在类似的上下文中听说过tar和。gzip
这两个工具的基本区别是:在压缩文件
tar的同时从多个文件创建存档。gzip
这些工具并不相互排斥。tar可以gzip用来压缩它归档的文件。tar的z开关使tar命令使用gzip。
gzip不是唯一tar可以使用的压缩程序。它还支持bzip2和xz。下表详细说明了这些压缩工具之间的一些基本区别。
一般来说,从压缩和性能的角度来看,gzip和是可比的,但使用更广泛。往往会提供最佳的整体压缩,但也需要更多的时间和计算资源。bzip2gzip.xz
注意:在我们的示例中,我们将专注于使用gzip.?在命令中替换-z为-j将使用bzip2而不是gzip。使用-Jinsteadof-z将使用xzinsteadof?gzip。
在Linux中压缩单个文件或目录的一般命令是:
tar-czvf<archivename></path/to/file/or/directory>
例如,要将/pepper目录压缩到名为的存档egg.tar.gz,请运行以下命令:
tar-czvfegg.tar.gz/pepper
tar:Removingleading`/'frommembernames
/pepper/pepperAndegg.log
/pepper/pepperAndEgg.txt
/pepper/pepperandegg.log
如果我们省略v开关而是使用命令tar-czfegg.tar.gz/pepper,输出将不会包括每个文件。相反,它看起来类似于此
tar:Removingleading`/'frommembernames
如果没有错误或需要从成员名称中删除的字符——例如,如果我们正在压缩当前工作目录中的文件——则不会有输出。
注意:tar指定开关的方法不止一种。您会注意到我们-在指定tar开关之前使用。虽然这是一个常见的约定,但通常并不需要。tarczvf<archivename></path/to/file/or/directory>也会工作。一样会tar-cf<archivename>-vz</path/to/file/or/directory>。tar我们将坚持我们在其余示例中使用的约定,但请记住,指定选项的方法不止一种。
如何将多个文件或目录压缩到一个存档

tar-czvf<archivename></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-czvfegg.tar.gzone.txttwo.mp4three.iso
如果您指定一个目录来创建存档,则可能有一些文件要从存档中排除。该--exclude选项允许您指定要从存档中排除的模式。
任何与传递给--exclude选项的模式相匹配的文件都不会包含在存档tar创建中。
tar从存档中排除文件的一般命令是:
tar--exclude=<PATTERN><Options><archivename></path/to/directory>
例如,假设我们的/pepper目录中有这些文件:
我们希望将除.log文件之外的所有内容压缩到egg.tar.gz存档中。我们可以使用这个命令:
tar--exclude='*.log'-czvfegg.tar.gz/pepper
如果需要,您可以--exclude在单个命令中指定多个模式。
如果你有一个现有的档案并且你想向它添加文件,你可以使用-r或--append选项。附加到.tar档案的一般命令是:
tar-rf<tararchive></path/to/file>
-r与--append压缩档案不兼容。这意味着您只能将它们与未通过压缩程序(如、或)运行的tarballgzip一起bzip2使用xz。
如果您尝试在压缩存档上使用-r或--append,您可能会看到类似于以下内容的错误:
tar:Cannotupdatecompressedarchives
tar:Errorisnotrecoverable:exitingnow
由于此限制以及和的其他一些细微差别-r,--append在许多情况下,使用附加文件创建新存档会更容易。
-t您可以使用或--list选项列出存档的内容。列出档案内容的一般命令是:
和选项适用于压缩和未压缩的档案-t。?--list
例如,要列出egg.tar.xz当前工作目录中存档的内容,请运行以下命令:
tar的-x开关用于提取档案。在Linux中提取存档的一般命令是:
该tar-xf命令适用于压缩和未压缩的档案。
例如,要egg.tar.gz在我们当前的工作目录中提取一个档案,我们可以使用这个命令:
在某些情况下,您可能希望将文件提取到当前工作目录以外的目录中。tar的-C开关在这种情况下很有用。
将档案提取到特定目录的一般命令是:
tar-xf<archive>-C</path/to/destination>
例如,要将我们的egg.tar.gz存档提取到/tmp/cherry,我们可以使用以下命令:
tar-xfegg.tar.gz-C/tmp/cherry
现在您已经了解了使用.tar的基础知识tar,您可以像专业人士一样使用“tarballs”。请记住,tar它是灵活的,您可以组合不同的开关来产生不同的结果并调整输出。要深入了解tar,请查看官方GNUtar手册
本文来源:国外服务器--linux怎么用tar压缩文件
本文地址:https://www.idcbaba.com/guowai/5333.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



