tar
命令用于将文件和目录打包并压缩为一个tar
存档文件。它也可以解压文件。
显示压缩文件中包含文件与目录,还可以将其他文件添加到现有tar压缩文件中,以及各种其他类型的操作。
tar
支持种类繁多的压缩程序如gzip
,bzip2
,lzip
,lzma
,lzop
,xz
和compress
。
在创建压缩文件时,通常会使用压缩程序的名称作为后缀添加到压缩文件名的末尾。
这是一种公认的惯例,例如创建压缩文件时使用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.gz
,tar.bz2
等。tar命令会自动检测压缩包使用的压缩程序。
test/
test/file1
test/dir/
test/dir/file2
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'