如何在Linux上使用tar命令压缩和解压文件

Linux上的tar命令通常用于创建.tar.gz或.tgz归档文件,也称为“tarball”。此命令有大量选项,但您只需记住几个字母,即可使用tar快速创建档案。tar命令也可以解压生成的存档。

Linux发行版附带的GNU tar命令集成了压缩。它可以创建一个.tar归档文件,然后在单个命令中使用gzip或bzip2压缩对其进行压缩。这就是生成的文件是.tar.gz文件或.tar.bz2文件的原因。

压缩整个目录或单个文件

在Linux上使用以下命令压缩整个目录或单个文件。它还将压缩您指定的目录中的所有其他目录-换句话说,它以递归方式工作。

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

以下是这些开关的实际含义:

-c:创建档案。 -z:用gzip压缩档案。 -v:创建档案时在终端显示进度,也称为“详细”模式。在这些命令中,v始终是可选的,但它很有用。 -f:允许您指定存档的文件名。

假设您在当前目录中有一个名为“Stuff”的目录,并且您希望将其保存到一个名为archive ve.tar.gz的文件中。您将运行以下命令:

tar -czvf archive.tar.gz stuff

或者,假设当前系统上的/usr/local/某处有一个目录,您希望将其压缩为名为archive ve.tar.gz的文件。您将运行以下命令:

tar -czvf archive.tar.gz /usr/local/something

一次压缩多个目录或文件

相关:如何从Linux终端管理文件:您需要知道的11个命令

虽然tar通常用于压缩单个目录,但是您也可以使用它来压缩多个目录、多个单独的文件,或者两者兼而有之。只需提供文件或目录列表,而不是单个文件或目录。例如,假设您想要压缩/home/ubuntu/downloads目录、/usr/local/Stuff目录和/home/ubuntu/document/notes.txt文件。您只需运行以下命令:

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

只需列出您要备份的任意数量的目录或文件即可。

排除所有目录和文件

在某些情况下,您可能希望压缩整个目录,但不包括某些文件和目录。您可以通过为要排除的每个目录或文件附加--EXCLUDE开关来执行此操作。

例如,假设您想压缩/home/ubuntu,但不想压缩/home/ubuntu/downloads和/home/ubuntu/.cache目录。下面是你会怎么做:

tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

--EXCLUDE开关非常强大。它不接受目录和文件的名称-它实际上接受模式。你可以用它做很多事情。例如,您可以使用以下命令存档整个目录并排除所有.mp4文件:

tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4

改用bzip2压缩工具

虽然gzip压缩文件最常用于创建.tar.gz或.tgz文件,但tar也支持bzip2压缩。这允许您创建bzip2压缩文件,通常命名为.tar.bz2、.tar.bz或.tbz文件。为此,只需将此处命令中gzip的-z替换为bzip2的a-j即可。

gzip速度更快,但通常压缩较少,因此您得到的文件会稍微大一些。Bzip2较慢,但它的压缩量稍大一些,因此您得到的文件稍微小一些。gzip也更常见,一些精简版的Linux系统默认支持gzip,但不支持bzip2。不过,一般而言,gzip和bzip2实际上是一回事,两者的工作方式相似。

例如,您可以运行以下命令,而不是我们提供的用于压缩Stuff目录的第一个示例:

tar -cjvf archive.tar.bz2 stuff

解压缩档案

一旦您有了归档文件,就可以使用tar命令将其解压。下面的命令会将archive ve.tar.gz的内容解压到当前目录。

tar -xzvf archive.tar.gz

它与我们上面使用的存档创建命令相同,只是-x开关替换了-c开关。这指定您要解压缩存档,而不是创建存档。

您可能希望将存档内容解压缩到特定目录。您可以通过将-C开关附加到命令末尾来执行此操作。例如,以下命令将Archive.tar.gz文件的内容解压缩到/tmp目录。

tar -xzvf archive.tar.gz -C /tmp

如果文件是bzip2压缩文件,请将上述命令中的“z”替换为“j”。

这是tar命令最简单的用法。命令包含大量附加选项,因此我们不可能在这里全部列出。以获取更多信息。在shell中运行info_tar命令,查看tar命令的详细信息页面。完成后按Q键退出信息页面。你也可以在网上阅读TAR的手册。

如果您使用的是图形化Linux桌面,您还可以使用桌面附带的文件压缩实用程序或文件管理器来创建或解压缩.tar文件。在Windows上,您可以使用免费的.7-Zip实用程序提取和创建.tar归档文件。

相关文章