该tar命令用于通过将一组文件转换为归档文件来创建tar归档文件。它还具有提取tar归档文件,显示归档文件中包含的文件列表,将其他文件添加到现有归档文件以及各种其他类型的操作的功能。
Tar最初旨在创建用于在磁带上存储文件的档案,这就是为什么它的名称为“ T ape AR chive”。
在本教程中,我们将tar通过实际示例和最常见的tar选项的详细说明,向您展示如何使用该命令来提取,列出和创建tar归档文件。
Tar命令语法
tar有两种版本,BSD tar和GNU tar之间有一些功能差异。大多数Linux系统默认都预先安装了GNU tar。
该tar命令的常规语法如下:
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
PERATION-仅允许和需要一个操作参数。最常用的操作是:
--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存档
焦油支持种类繁多的压缩程序如bzip2,lzip,lzma,lzop,xz和compress。创建压缩的tar归档文件时,将压缩程序后缀附加到归档文件名是公认的惯例。例如,如果压缩文件已被压缩,archive.tar.gz。
要创建tar存档,请使用-c选项,后跟-f和存档名称。
例如,创建一个名为的档案archive.tar,从指定的文件file1,file2,file3,您将运行以下命令:
tar -cf archive.tar file1 file2 file3
这是使用长格式选项的等效命令:
tar --create --file=archive.tar file1 file2 file3
您可以从一个或多个目录或文件的内容创建档案。默认情况下,除非--no-recursion指定选项,否则将递归地归档目录。
下面的例子将创建一个名为存档user_backup.tar的的/home/user目录:
tar -cf backup.tar /home/user
-v如果要查看正在处理的文件,请使用该选项。
创建Tar Gz存档
Gzip是最受欢迎的压缩tar文件的算法。使用gzip压缩tar归档文件时,归档文件名称应以tar.gz或结尾tgz。
该-z选项告诉tar使用gzip创建时的算法压缩档案。例如,要从给定文件创建tar.gz归档文件,可以使用以下命令:
tar -czf archive.tar.gz file1 file2
创建Tar Bz2存档
压缩tar文件的另一种流行算法是bzip2。使用bzip2压缩tar归档文件时,归档文件名称应以tar.bz2或结尾tbz。
当-j指定选项焦油会使用bzip2算法来压缩归档文件。以下命令将tar.bz2根据给定的文件创建一个归档文件:
tar -cjf archive.tar.bz2 file1 file2
列出Tar档案
与--list(-t)选项一起使用时,该tar命令将列出tar归档文件的内容,而不提取该归档文件。下面的命令将列出archive.tar文件的内容:
tar -tf archive.tar
输出将列出存档中所有文件的名称:
file1
file2
file3
要获取更多信息,例如文件所有者,文件大小,时间戳记,请使用--verbose(-v)选项:
tar -tvf archive.tar
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file1
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file2
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file3
提取Tar存档
Linux中的大多数归档文件都是使用tar或tar.gz格式归档和压缩的。了解如何从命令行提取这些文件很重要。
要提取tar存档,请使用--extract(-x)选项,后跟存档名称:
tar -xf archive.tar
通常还可以添加-v选项以打印要提取的文件的名称。
tar -xvf archive.tar
在其他目录中提取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)操作。
例如,要添加一个名为newfilearchive.tar的文件,可以运行:
tar -rvf archive.tar newfile
从Tar存档中删除文件
使用该--delete操作从存档中删除文件。
以下示例显示了如何file1从archive.tar中删除文件:
tar --delete -f archive.tar file1
写在最后
该tar命令最常见的用法是创建和提取tar归档文件。提取档案时,请使用tar -xf命令及其后的档案名称,并创建一个新的用法,tar -czf其后是档案名称以及要添加到档案中的文件和目录。
有关tar命令的更多信息,请参阅Gnu tar文档页面。