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
命令的-c
选项。
默认情况下,tar
命令递归目录的所有文件并创建存档。如果你指定--no-recursion
选项,tar
命令将不会递归目录的所有文件。
例如命令tar -cf archive.tar file1 file2 file3
创建archive.tar
存档文件并打包文件file1
,file2
,file3
。
你也可以使用使用长形式选项的等效命令tar --create --file=archive.tar file1 file2 file3
创建archive.tar
存档文件。
tar -cf archive.tar file1 file2 file3
tar --create --file=archive.tar file1 file2 file3
如你需要查看tar命令打包过程,可以使用tar
命令-v
选项。-v
选项用于打印正在处理的文件/目录。
如果你想保留tar
命令创建存档整个过程,可以将-v
选项的标准输出重定向到文件中。
例如命令tar -cfv backup.tar /home/username > tar.log
将tar
命令的日志将写入到当前目录的tar.log文件。
tar -cfv backup.tar /home/username > tar.log
tar 命令添加文件目录
要将文件或目录添加到现有tar压缩文件,请使用tar命令的--append
/-r
选项。
-r
选项允许你指定一个或者多个文件与目录,如果要指定多个文件与目录请使用空格进行分隔。
例如命令tar -rvf archive.tar newfile
添加文件newfile
到tar文件archive.tar
。
tar -rvf archive.tar newfile
tar 命令删除文件目录
要从tar压缩文件删除文件与目录,请使用tar
命令的--delete
选项。
--delete
选项允许你指定一个或者多个文件与目录,如果要指定多个文件与目录请使用空格进行分隔。
在删除目录文件与目录时,必须提供文件目录在压缩内文件的内的路径,你可以使用tar
命令的--list
/-t
选项查看文件路径,运行命令tar tf archive.tar
。
例如命令tar --delete -f archive.tar file1
将在archive.tar
存档文件删除文件file1
。
tar tf archive.tar
tar --delete -f archive.tar file1
tar 命令解压tar文件
要解压tar
文件,请使用tar
命令的--extract
或者-x
选项,并在-f
选项后指定tar
文件名称。
命令tar -xf archive.tar
将会解压archive.tar文件到当前目录。-f
选项用于指定文件,-x
选项表示解压。
tar -xf archive.tar
tar 命令查看存档文件目录
要查看tar存档文件与目录,请使用tar
命令的--list
选项或者短形式的-t
选项。
除了查看文件名称,你还可以添加tar
命令的--verbose
/-v
选项打印更详细的信息。
这些文件的信息包括所有者,文件大小,时间戳,权限等。命令tar -tf archive.tar
将列出archive.tar
存档的文件与目录。
tar -tf archive.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
命令的-v
选项。这将会在终端打印正在解压的文件名称。
tar
默认解压tar文件到当前工作目录,要解压到指定的目录,请使用--directory
或者-C
选项。
命令tar -xf archive.tar -C /home/myfreax/files
将archive.tar
解压到/home/myfreax/files
目录。
tar -xvf archive.tar
tar -xf archive.tar -C /home/myfreax/files
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/
到当前目录。
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
命令的--wildcards
选项允许您基于通配符模式或者正则表达式从tar文件中提取多个文件。
在使用通配符模式或者正则表达匹配多个文件时,必须使用单引号对模式进行包裹,避免shell解释模式中的特殊符号。
例如命令tar -xf archive.tar --wildcards '*.png'
将会提取以.png
结尾的文件。
tar -xf archive.tar --wildcards '*.png'
tar 命令创建tar.xz文件
压缩tar文件的另一个流行的程序是xz。使用xz程序压缩tar
文件时,压缩文件名称应以xz
结尾。
要创建使用xz压缩程序的创建tar.xz文件。请使用tar
命令的-J
选项。该选项将会使用xz程序压缩tar存档文件。
例如命令tar cJfv archive.tar.xz file1 file2
将会打包文件file1
,file2
到压缩文件archive.tar.xz
。
tar cJfv archive.tar.xz file1 file2
tar 命令创建tar.gz文件
gzip
是压缩最流行的压缩程序之一。使用gzip程序压缩tar
文件时,压缩文件名称应以tar.gz
或者以tgz
结尾。
要创建使用gzip压缩程序的创建tar.gz文件。请使用tar
命令的-z
选项。该选项将会使用gzip程序压缩tar存档文件。
例如命令tar -czf archive.tar.gz file1 file2
将会打包文件file1
,file2
到压缩文件archive.tar.gz
。
tar -czf archive.tar.gz file1 file2
tar 命令创建tar.bz2文件
压缩tar文件的另一个流行的程序是bzip2。使用bzip2程序压缩tar
文件时,压缩文件名称应以bz2
结尾。
要创建使用bzip2压缩程序的创建tar.bz2文件。请使用tar
命令的-j
选项。该选项将会使用bzip2程序压缩tar存档文件。
例如命令tar -cjf archive.tar.bz2 file1 file2
将会打包文件file1
,file2
到压缩文件archive.tar.gz
。
tar -cjf archive.tar.bz2 file1 file2
tar 命令解压tar.xz文件
要解压tar.xz
文件,请tar
命令的使用--extract
或者-x
选项,并在-f
选项后指定tar.xz
文件文件名称。
tar
自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf
命令来解压使用其他压缩算法的tar存档文件。例如.tar.gz
文件和.tar.bz
文件。
命令tar -xf archive.tar.xz
命令将会解压archive.tar.xz文件到当前目录。-f
选项用于指定文件,-x
选项表示解压。
tar -xf archive.tar.xz
tar 命令解压tar.gz文件
要解压tar.gz
文件,请tar
命令的使用--extract
或者-x
选项,并在-f
选项后指定tar.xz
文件文件名称。
tar
自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf
命令来解压使用其他压缩算法的tar存档文件。例如.tar.xz
文件和.tar.bz
文件。
命令tar -xf archive.tar.gz
命令将会解压archive.tar.gz文件到当前目录。-f
选项用于指定文件,-x
选项表示解压。
tar -xf archive.tar.gz
tar 命令解压tar.bz2文件
要解压tar.bz2
文件,请tar
命令的使用--extract
或者-x
选项,并在-f
选项后指定tar.bz2
文件文件名称。
tar
自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf
命令来解压使用其他压缩算法的tar存档文件。例如.tar.gz
文件和.tar.xz
文件。
命令tar -xf archive.tar.bz2
命令将会解压archive.tar.bz2文件到当前目录。-f
选项用于指定文件,-x
选项表示解压。
tar -xf archive.tar.bz2
结论
到目前为止,您应该很好地了解如何创建和提取/解压缩tar
存档文件。想要查看tar
命令的更多信息,请参阅Gnu tar文档页面,如有疑问请在下方评论留言。