Linux中的Tar命令(创建和解压压缩包)

评论 0 浏览 0 2018-09-08

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.bz2tbz结尾。

要用bzip2算法压缩档案,请用-j选项调用tar。下面的命令从给定的文件中创建了一个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.gztar.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文档页面

最后更新2023-10-18
0 个评论
标签