tar命令用于通过将一组文件转换为归档文件来创建tar归档文件。它还具有提取tar归档文件,显示归档文件中包含的文件列表,向现有归档文件中添加其他文件以及其他各种操作的能力。

Tar最初旨在创建用于在磁带上存储文件的档案,这就是为什么它的名称为“ Tape ARchive”。

在本教程中,我们将通过实际示例和最常见的tar选项的详细说明,向您展示如何使用tar命令提取,列出和创建tar归档文件。

Tar命令语法

tar有两种版本, BSD tar GNU tar 之间存在一些功能差异。大多数Linux系统默认都预先安装了GNU 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存档

Tar支持各种压缩程序,例如gzipbzip2lziplzmalzopxzcompress。创建压缩的tar归档文件时,将压缩程序后缀附加到归档文件名是公认的惯例。例如,如果归档文件已使用 gzip 压缩,则应将其命名为archive.tar.gz。

要创建tar归档文件,请使用-c选项,后接-f和归档文件的名称。

例如,要从名为file1file2file3的文件创建名为archive.tar的档案,您可以运行以下命令:

tar -cf archive.tar file1 file2 file3

以下是使用长格式选项的等效命令:

tar --create --file=archive.tar file1 file2 file3

您可以根据一个或多个目录或文件的内容创建档案。默认情况下,除非指定--no-recursion选项,否则将递归归档目录。

以下示例将在/home/user目录中创建一个名为user_backup.tar的存档:

tar -cf backup.tar /home/user

如果要查看正在处理的文件,请使用-v选项。

创建Tar Gz存档

Gzip是最流行的tar文件压缩算法。使用gzip压缩tar归档文件时,归档文件名称应以tar.gztgz结尾。

-z选项告诉tar在创建档案时使用gzip算法压缩档案。例如,要从给定的文件创建tar.gz归档文件,可以使用以下命令:

tar -czf archive.tar.gz file1 file2

创建Tar Bz2存档

另一个压缩tar文件的流行算法是bzip2。使用bzip2压缩tar归档文件时,归档文件名称应以tar.bz2tbz结尾。

当指定-j选项时,tar将使用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-- 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档案

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)操作。

例如,要将名为newfile的文件添加到archive.tar,请运行:

tar -rvf archive.tar newfile

从Tar存档中删除文件

使用--delete操作从存档中删除文件。

以下示例显示如何从archive.tar中删除文件file1

tar --delete -f archive.tar file1

结论

tar命令的最常见用途是创建和提取tar存档。提取档案时,请使用tar -xf命令,后跟档案名称,然后使用tar -czf创建新的档案,后跟档案名称以及您要添加到档案中的文件和目录。

有关tar命令的更多信息,请参阅 Gnu tar文档页面

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持