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

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

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

有两种版本的tar,BSD tar和GNU 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从指定的文件file1,file2,file3,运行以下命令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.bz2或tbz。

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

以下命令使用 tar.bz2 后缀创建存档:tar -cjf archive.tar.bz2 file1 file2

列出Tar档案

要列出tar存档的内容,请使用--list(-t)选项tar -tf archive.tarfile1file2file3

如果使用--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.gztar -xf archive.tar.bz2

从Tar存档中提取特定文件

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

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

从存档中提取一个或多个目录和提取文件一样tar -xf archive.tar dir1 dir2

如果您尝试提取不存在的文件,将显示类似于以下内容的错误消息:tar -xf archive.tar READMEtar: 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文档页面,如有疑问请在下方评论留言

Logo

更多推荐