tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以解压文件。

显示压缩文件中包含文件与目录,还可以将其他文件添加到现有tar压缩文件中,以及各种其他类型的操作。

tar支持种类繁多的压缩程序如gzipbzip2lziplzmalzopxzcompress

在创建压缩文件时,通常会使用压缩程序的名称作为后缀添加到压缩文件名的末尾。

这是一种公认​​的惯例,例如创建压缩文件时使用gzip压缩程序,压缩文件的名称应该带有.gz后缀。

tar命令最初设计用于创建存档并在磁带存储文件,这就是为什么它的名字叫Tape ARchive的原因。

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

在本教程中,将说明如何使用tar 命令创建或者解压tar文件。还包括tar命令语法选项。

tar 命令

在说明如何使用tar命令之前,先回顾基本语法。tar命令的语法形式是tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

OPERATION也就是操作,tar命令的操作包括,-c/--create创建tar存档文件。

-x/--extract解压存档文件或在存档文件中提取一个或多个文件与目录。-t/--list查看tar存档包含的文件与目录。

OPTIONS选项,tar命令的常用选项包括,--verbose/-v打印tar命令正在处理的文件的信息。

--file=archive=name/-f archive-name指定压缩文件的名称。ARCHIVE_NAME要解压或者压缩的tar存档名称。

FILE_NAME(s)是要提取的一个或者多个文件与目录,多个文件与目录使用空格分隔。如果未提供,则解压整个存档。

在运行tar命令时,可以使用tar操作OPERATION和选项OPERATION的长短形式。长形式更易读,而短形式更方便。

长形式选项以双短划线--开头。短形式选项以单个短划线-为开头,你也可以省略-

tar 命令提取指定文件

要从tar文件中提取指定文件,请在tar命令的最后指定要提取文件名称,多个文件使用空格作为分隔符。

提取文件时,必须提供文件在压缩内文件的内的路径,你可以使用tar命令的--list/-t选项查看文件路径,运行命令tar tf test.tar.xz

除了在tar压缩文件提取文件以外,你还可以提取一个或多个目录。与提取文件一样你需要指定目录在压缩内文件的内的路径。

如果您尝试提取压缩文件内不存在的文件,tar命令将会打印错误消息tar: README: Not found in archive。tar: Exiting with failure status due to previous errors。

例如命令tar -xf archive.tar test/dir/ test/file1将会提取文件test/file1 和目录test/dir/到当前目录。

同样tar命令也可以用于其它压缩程序创建的压缩文件,例如tar.gztar.bz2等。tar命令会自动检测压缩包使用的压缩程序。

test/
test/file1
test/dir/
test/dir/file2
archive.tar.xz
tar -tf archive.tar.xz

tar -xf archive.tar.xz test/file1
tar -xf archive.tar.xz test/dir/ test/file1

tar -xf archive.tar.gz test/dir/ test/file1

tar命令的--wildcards选项允许您基于通配符模式或者正则表达式从tar文件中提取多个文件。

在使用通配符模式或者正则表达匹配多个文件时,必须使用单引号对模式进行包裹,避免shell解释模式中的特殊符号。

例如命令tar -xf archive.tar --wildcards '*.png'将会提取以.png结尾的文件。

tar -xf archive.tar --wildcards '*.png'
tar 命令创建/解压文件 | myfreax
tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提tar压缩文件