Linux中的Tar命令(创建和提取档案)
的 tar
该命令通过将一组文件转换为归档文件来创建tar文件。 它还可以提取tar档案,显示档案中包含的文件列表,将其他文件添加到现有档案中以及其他各种操作。
Tar最初旨在创建用于将文件存储在磁带上的档案,这就是为什么它的名称为“Ť猿 增强现实细香葱”。
本文介绍了如何使用 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支持各种压缩程序,例如 gzip
, bzip2
, lzip
, lzma
, lzop
, xz
和 compress
。 创建压缩的tar归档文件时,将压缩程序后缀附加到归档文件名是公认的惯例。 例如,如果归档文件已使用 gzip
,应将其命名为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.bz2
要么 tbz
。
要使用 bzip2
算法,调用 tar
与 -j
选项。 以下命令创建一个 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
)操作。
例如,添加一个名为 newfile
要archive.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文档页面。
焦油终端