tar命令用于将一组文件创建tar存档。它也可以提取tar档案,显示档案中包含的文件列表,将其他文件添加到现有档案,以及各种其他类型的操作

tar支持种类繁多的压缩程序如gzipbzip2lziplzmalzopxzcompress。创建压缩tar档案时,将压缩器的后缀附加到档案的文件名是一种公认​​的惯例,例如使用gzip压缩了存档,则应将其命名为archive.tar.gz

Tar最初设计用于创建存档以在磁带上存储文件,这就是为什么它的名字叫“ Tape ARchive”的原因

有两种版本的tar,BSD tarGNU tar,它们之间存在一些功能差异。大多数Linux系统默认都预装了GNU tar

Tar命令语法

在讨论如何使用tar命令之前,先回顾一下基本语法。

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
  • OPERATION - 只允许一个操作参数。最常用的操作是:
  • --create-c) - 创建一个新的tar存档
  • --extract-x) - 从存档中提取整个存档或一个或多个文件
  • --list-t) - 显示存档中包含的文件列表
  • OPTIONS - 最常用的操作
  • --verbose-v) - 显示tar命令正在处理的文件的详情
  • --file=archive=name-f archive-name) - 指定存档文件名
  • ARCHIVE_NAME - 存档的名称
  • FILE_NAME(s) - 要提取的以空格分隔的文件名列表。如果未提供,则提取整个存档

执行tar命令时,可以使用tar操作和选项的长短形式。长形式更易读,而短形式更方便。长格式选项以双短划线(--)为前缀。短格式选项以单个短划线(-)为前缀,可以省略

创建Tar存档

使用-c运算符创建tar存档。例如,创建一个名为存档文件archive.tar从指定的文件file1file2file3,运行以下命令

tar -cf archive.tar file1 file2 file3

以下是使用长形式选项的等效命令

tar --create --file=archive.tar file1 file2 file3

下面的例子将创建一个名为的档案backup.tar/home/username目录

tar -cf backup.tar /home/username

您可以从一个或多个目录或文件的内容创建存档。默认情况下,除非--no-recursion指定了选项,否则目录将以递归方式创建存档。-v 可以查看正在处理的文件

创建Tar Gz档案

Gzip是压缩tar文件最流行的压缩算法。使用gzip压缩tar存档时,存档名称应以tar.gz或者以tgz结尾

要从指定文件创建tar.gz存档,您可以使用以下命令:

tar -czf archive.tar.gz file1 file2

-z选项告诉tar创建时使用在gzip算法压缩存档

创建Tar Bz2档案

压缩tar文件的另一种流行算法是bzip2。当用bzip2压缩的tar档案存档名后缀称应使用 tar.bz2tbz

当使用 -j选项时tar会使用bzip2算法来压缩归档文件

以下命令使用 tar.bz2 后缀创建存档:

tar -cjf archive.tar.bz2 file1 file2

列出Tar档案

要列出tar存档的内容,请使用--list-t)选项

tar -tf archive.tar
file1file2file3

如果使用--verbose-v)选项列出存档的内容,则tar将打印更多信息,例如所有者,文件大小,时间戳等

tar -tvf archive.tar
-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file1-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file2-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file3

提取Tar档案

要提取tar存档,请使用--extract-x)运算符并指定存档文件名:

tar -xf archive.tar

添加-v选项以打印要提取的文件的名称

tar -xvf archive.tar

默认情况下,tar将存档内容提取到当前工作目录中。使用--directory-C)提取到指定目录中

例如,要将存档内容提取到/opt/files目录,您可以使用

tar -xf archive.tar -C /opt/files

提取Tar Gz和Tar Bz2档案

提取压缩档案时tar.gz或者tar.bz2您不必指定解压缩选项。该命令与提取tar存档时的命令相同

tar -xf archive.tar.gz
tar -xf archive.tar.bz2

从Tar存档中提取特定文件

要从tar存档中提取特定文件,请在存档名称后附加以空格分隔的文件名列表:

tar -xf archive.tar file1 file2

提取文件时,必须提供其确切的名称,包括由--list-t)打印名称

从存档中提取一个或多个目录和提取文件一样

tar -xf archive.tar dir1 dir2

如果您尝试提取不存在的文件,将显示类似于以下内容的错误消息:

tar -xf archive.tar README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors

使用通配符从Tar存档中提取文件

要基于通配符模式从存档中提取文件,请使用--wildcards 选项并使用单引号转义以防止shell解释它

例如,要提取名称以.js(Javascript文件)结尾的文件,您可以使用

tar -xf archive.tar --wildcards '*.js'

将文件添加到现有的Tar存档

要将文件或目录添加到现有tar存档,请使用--append-r)操作。

例如,要添加名为newfile  文件到archive.tar ,您可以使用

tar -rvf archive.tar newfile

从Tar存档中删除文件

使用该--delete操作从存档中删除文件。

例如,要删除以file1archive.tar 命名的文件,您可以使用:

tar --delete -f archive.tar file1

到目前为止,您应该很好地了解如何创建和提取tar档案。有关tar命令的更多信息,请参阅Gnu tar文档页面,如有疑问请在下方评论留言

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持