Linux tar是一个非常流行的工具,用于压缩和提取文件和文件夹。Tar使用了很长一段时间,其主要用途是用于磁带存档。Tar主要支持Tar格式或扩展名,用于为所有目录和文件创建一个文件。但是经过历史的发展,tar已经集成了gz、bzip等压缩协议支持。Tar通常与这些流行的压缩协议一起用于压缩文件和文件夹。典型的 .焦油,.tar.gz 和 .焦油.bz 扩展名用于命名压缩文件。在本教程中,我们将详细介绍如何针对不同的情况和操作使用tar命令。
创建Tar存档
正如我们之前所说,tar归档将为所有目录和文件创建一个文件。这对于压缩、传输、备份等非常有用。Tar通常也用于传输或备份操作。在本例中,我们将把桌面目录创建为tar文件。
$ tar -cvf tmux.tar tmux-2.2

这里我们创建了一个 tmux.tar文件 它提供了中的所有文件和文件夹 tmux-2.2型
详细列出提取或压缩的文件和文件夹
要获取操作的详细信息,应指定verbose选项。在前面的示例中,我们已经将verbose选项用于 -五 .
$tar-cvf tmux.tar tmux-2.2
使用Gzip压缩创建Tar存档
Gzip是一种流行的好的压缩算法,用于许多不同的目的。例如,浏览器和web服务器也使用gzip压缩算法。Tar和gzip可以与下面这样的单个命令一起使用。
$ tar cvfz tmux.tar.gz tmux-2.2

使用Bzip2压缩创建Tar存档
Bzip2是gzip压缩算法的替代算法。Bzip2特别流行于Linux、Unix和BSD平台。它可以和gzip一样使用。
$ tar cvfj tmux.tar.bz2 tmux-2.2

解压和解压Tar存档
到目前为止,我们已经压缩了我们的文件和目录。给他们减压怎么样?我们将解压所有内容或档案到目前的工作目录如下。用于提取tar存档的主要参数是 十 .
$ tar xvf tmux.tar

解压缩或Untar tar.gz存档
Gzip压缩的tar文件在解压缩时是类似的。我们可以向正常的extract tar命令添加gzip参数,如下所示。
$ tar xvfz tmux.tar.gz

解压缩或Untar tar.bz2存档
与tar存档一起使用的另一种流行的压缩算法是Bzip2。默认情况下,Bzip2压缩tar档案使用*.tar.bz2文件扩展名。为了解压、提取或解压bzip2归档文件,我们将使用 xvfj
通过提供bzipped归档文件名或路径来选择,如下所示。
$ tar xvfj tmux.tar.bz2

列出或显示Tar存档的内容
一个tar归档文件通常包含很多文件和文件夹,列出tar归档文件就像压缩文件和目录一样简单。我们将提供 -tvf
下面列出的选项 tmux.tar
文件内容。
$ tar -tvf tmux.tar

列出Tar.Gz存档的内容
tar.gz的内容可以列在下面。 它和焦油是一样的,因为。Tar自动检测压缩方法。所以我们不需要特别指定压缩算法。
$ tar -tvf tmux.tar.gz

列出Tar.Bz2存档的内容
与tar和gz格式相同。我们没有具体说明压缩算法。自动检测。
$ tar -tvf tmux.tar.bz2

从Tar存档中提取单个文件
从存档中提取文件最常用的方法之一是只提取单个文件。我们将通过给tar命名来提取一个文件,如下所示。我们将使用 -xvf
选项并提供 tar
文件和我们要提取的文件。在本例中,我们将提取 tmux-2.2/hooks.c
tar文件中名为 tmux.tar
$ tar -xvf tmux.tar tmux-2.2/hooks.c

从Tar.Gz存档中提取单个文件
从tar.gz存档中提取单个文件与前面的示例非常相似。我们将添加Gzip参数 z
. 我们将使用 -zxvf
选项如下。
$ tar -zxvf tmux.tar.gz tmux-2.2/hooks.c

从Tar.Bz2存档中提取单个文件
为Bzip2归档文件提取单个文件类似于tar和gzip。我们将使用 -jxvf
选项如下。
$ tar -jxvf tmux.tar.bz2 tmux-2.2/hooks.c

提取多个 Tar存档文件
它也可以从tar存档的多个文件中提取。将提取的文件将以空格分隔列出。
$ tar -xvf tmux.tar "tmux-2.2/hooks.c" "tmux-2.2/cfg.c"

提取多个 Tar.Gz存档文件
我们可以从gzip存档中提取多个文件,就像tar存档一样。我们将只在命令末尾放置要提取的文件名。在本例中,我们将提取文件 hooks.c
和 cfg.c
$ tar -zxvf tmux.tar.gz "tmux-2.2/hooks.c" "tmux-2.2/cfg.c"

提取多个 Tar.Bz2存档文件
可以提取bzip2归档文件的多个文件,类似于tar和gzip。我们只提供bzip2参数 j
.
$ tar -jxvf tmux.tar.bz2 "tmux-2.2/hooks.c" "tmux-2.2/cfg.c"
![图片[15]-Linux Tar命令教程及示例-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2017/01/poftut_img_5868ed517c902.png)
使用通配符提取指定的文件类型或扩展名
通配符用于指定具有相似名称的多个文件。我们只需设置名称的固定部分,然后为变量部分设置通配符,如下所示。通配符用 *
.
$ tar -zxvf tmux.tar.gz --wildcards '*.txt'
将文件和目录添加到Tar存档
在创建tar存档之后,我们可能需要向现有tar存档添加额外的文件。对于此操作,我们将使用 r 用于追加或添加操作。
$ tar -rvf tmux.tar test1/

在本例中,我们添加了一个名为 测试1 . 添加文件也是一样的。
获取Tar存档的大小
内容的大小可以通过计算单词等经验性方法得到。下面的结果以KB为单位。给定的大小是解压缩整个内容后的总大小。
$ tar -czf - tmux.tar | wc -c

获取Tar.Gz存档的大小
tar.gz归档文件的大小如下所示。但请记住,这不是一个确切的大小。这是一个近似值。
$ tar -czf - tmux.tar.gz | wc -c

获取Tar.Bz2存档的大小
tar.bz归档文件的大小如下所示。但请记住,这不是确切的大小。这是一个近似值。
$ tar -czf - tmux.tar.bz2 | wc -c
