「tar(1)」-

归档程序

常用命令

解压到特定目录(使用 -C 选项):

tar -xf file.name.tar -C /path/to/directory

命令语法格式

传统风格

tar {A|c|d|r|t|u|x} [GnSkUWOmpsMBiajJzZhPlRvwo] [ARG…]

UNIX风格

tar -A [OPTIONS] ARCHIVE ARCHIVE

tar -c [-f ARCHIVE] [OPTIONS] [FILE…]

tar -d [-f ARCHIVE] [OPTIONS] [FILE…]

tar -t [-f ARCHIVE] [OPTIONS] [MEMBER…]

tar -r [-f ARCHIVE] [OPTIONS] [FILE…]

tar -u [-f ARCHIVE] [OPTIONS] [FILE…]

tar -x [-f ARCHIVE] [OPTIONS] [MEMBER…]

GNU风格

tar {–catenate|–concatenate} [OPTIONS] ARCHIVE ARCHIVE

tar –create [–file ARCHIVE] [OPTIONS] [FILE…]

tar {–diff|–compare} [–file ARCHIVE] [OPTIONS] [FILE…]

tar –delete [–file ARCHIVE] [OPTIONS] [MEMBER…]

tar –append [-f ARCHIVE] [OPTIONS] [FILE…]

tar –list [-f ARCHIVE] [OPTIONS] [MEMBER…]

tar –test-label [–file ARCHIVE] [OPTIONS] [LABEL…]

tar –update [–file ARCHIVE] [OPTIONS] [FILE…]

tar –update [-f ARCHIVE] [OPTIONS] [FILE…]

tar {–extract|–get} [-f ARCHIVE] [OPTIONS] [MEMBER…]

命令描述

GNU tar是一个归档程序,旨在将多个文件存储在单个文件(存档)中,并操作此类存档。存档可以是常规文件或设备(例如磁带驱动器,因此是程序的名称,代表磁带存档器),它可以位于本地或远程计算机上。

选项风格

GNU tar的选项可以以三种不同的样式给出:

在传统风格中,第一个参数是一组选项字母,所有后续参数都为需要它们的选项提供参数。参数的读取顺序与选项字母相同。处理完所有选项后保留的所有命令行单词都被视为非可选参数:文件或归档成员名称。

例如,选项c需要创建存档;选项v要求详细操作;选项f接受一个参数,该参数设置要操作的存档的名称。以传统风格编写的以下命令告诉tar命令:将目录/etc中的所有文件存储到存档文件a.tar中,并详细列出要存档的文件:

# tar cfv a.tar /etc

在UNIX或短选项风格中,每个选项字母都以单个短划线为前缀,与其他命令行程序一样。如果一个选项接受参数,则该参数将跟随它,或者作为单独的命令行字,或者紧跟在该选项之后。但是,如果该选项采用可选参数,则该参数必须紧跟选项字母,而没有任何插入空格,如-g/tmp/snar.db

任何数量的不带参数的选项都可以在单个破折号后聚集在一起,例如-vkp。带有参数的选项(无论是强制的还是可选的)可以出现在这样的集群的末尾,例如: -vkpf a.tar。

上面以短选项样式编写的示例命令可能如下所示:

# tar -cvf a.tar /etc

# tar -c -v -f a.tar /etc

在GNU或长选项样式中,每个选项都以两个破折号开头,并且具有有意义的名称,由小写字母和短划线组成。使用时,长选项可以缩写为其首字母,前提是这不会产生歧义。长选项的参数既可以作为单独的命令行单词提供,也可以紧跟在选项后面,或者通过等号与选项分隔,而不会插入空格。可选参数必须始终使用后一种方法。

以下是以此样式编写示例命令的几种方法:

# tar –create –file a.tar –verbose /etc

# tar –cre –file=a.tar –verb /etc

可以混合使用所有三种风格中的选项,但不鼓励使用旧选项。

命令行选项:指定操作模式

下表中列出的选项告诉GNU tar它要执行的操作。必须给出其中一个。非可选参数的含义取决于所请求的操作模式。

-c, –create
创建一个新的存档。参数提供了要归档的文件的名称。除非给出–no-recursion选项,否则目录将以递归方式归档。

-x, –extract, –get
从存档中提取文件。参数是可选的。给定时,它们指定要提取的存档成员的名称。

-t, –list
列出存档的内容。参数是可选的。给定时,它们指定要列出的成员的名称。

-A, –catenate, –concatenate
将存档附加到另一个存档的末尾。参数被视为要追加的档案的名称。所有归档的格式必须与被附加的归档的格式相同,否则生成的归档可能无法用于非GNU实现的tar命令。另请注意,如果给出了多个归档,则只有使用-i(–ignore-zeros)选项时,才能在生成的归档中访问第一个归档以外的归档中的成员。

压缩归档无法连接。

-d, –diff, –compare
找到存档和文件系统之间的差异。参数是可选的,并指定要比较的存档成员。如果没有给出,则假定当前工作目录。

–delete
从档案中删除。参数提供要删除的归档成员的名称。必须至少给出一个参数。

此选项不适用于压缩存档。没有相同的短选项。

-r, –append
将文件附加到存档的末尾。参数与-c(–create)的含义相同。

–test-label
测试存档卷标并退出。如果在不带参数的情况下使用,则会打印卷标(如果有),并以状态0退出。当给出一个或多个命令行参数时,tar将卷标与每个参数进行比较。如果找到匹配,则以0退出,否则以1退出。除非与-v(–verbose)选项一起使用,否则不显示任何输出。

此选项没有等效的短选项。

-u, –update
附加比归档中相应副本新的文件。参数与-c和-r选项具有相同的含义。

其他选项

-?, –help
显示简短选项摘要并退出。不允许使用参数。

–show-defaults
显示各种tar选项的内置默认值并退出。不允许任何参数。

–usage
显示可用选项列表并退出。不允许使用参数。

–version
显示版本的版权信息,然后退出。

命令行选项:支持的选项及含义

存档格式

-H, –format=FORMAT
创建给定格式的存档。有效格式为:

gnu,GNU tar 1.13.x格式

oldgnu,GNU格式,根据tar <= 1.12。

pax,posix,POSIX 1003.1-2001(pax)格式。

ustar,POSIX 1003.1-1988(ustar)格式。

v7,旧V7 tar格式。

–old-archive, –portability
等同于--format=v7形式。

–posix
等同于--format=posix形式。

–pax-option=keyword:]=value][,keyword[[:]=value…
创建PAX存档时(-H pax),控制pax关键字。此选项等同于pax(1)命令的-o选项。

-V, –label=TEXT
使用卷名TEXT来创建存档。如果列出或提取操作,为卷名称使用作为通配模式TEXT。

压缩

-a, –auto-compress
使用存档后缀来确定压缩程序。

–no-auto-compress
不要使用存档后缀来确定压缩程序。

-j, –bzip2
通过bzip2(1)过滤存档。

-J, –xz
通过xz(1)过滤存档。

–lzip
通过lzip(1)过滤存档。

–lzma
通过lzma(1)过滤存档。

–lzop
通过lzop(1)过滤存档。

-z, –gzip, –gunzip, –ungzip
通过gzip(1)过滤存档。

-Z, –compress, –uncompress
通过compress(1)过滤存档。

-I, –use-compress-program=COMMAND
通过COMMAND过滤数据。它必须接受-d选项才能进行解压缩。参数可以包含命令行选项。

操作修饰符

–check-device
创建增量存档时,检查设备编号(默认)。

–no-check-device
创建增量存档时,请勿检查设备编号。

-g, –listed-incremental=FILE
处理新的GNU格式的增量备份。参数FILE是快照文件的名称,tar在其中存储其他信息,用于确定自上次增量转储以来哪些文件发生了更改,因此必须再次转储。如果在创建存档时不存在FILE,则将创建该存档,并将所有文件添加到生成的存档(级别0的dump)。要创建非零级别N的增量存档,请创建在级别N-1期间创建的快照文件的副本,并将其用作FILE参数。

列出或提取时,不检查FILE的实际内容,仅根据语法要求才需要。因此,通常的做法是在其位置使用/dev/null。

-G, –incremental
处理旧的GNU格式增量备份。

–ignore-failed-read
在不可读的文件上,不要以非零退出。

–level=NUMBER
为已创建的列表的增量存档设置转储级别。目前只有–level=0才有意义:它指示tar在转储之前截断快照文件,从而强制转换0级。

-n, –seek
假设存档是可搜索的。通常,tar会自动确定是否可以搜索存档。此选项适用于自动识别失败的情况。仅当存档打开以供读取时才会生效(例如,使用–list或–extract选项)。

–no-seek
假设存档是可搜索的。

–occurrence[=N]
仅处理存档中每个文件的第N次出现。此选项仅在与以下子命令之一一起使用时有效:–delete, –diff, –extract, –list,以及在命令行或通过-T选项给出文件列表时。默认N为1。

–restrict
禁用某些可能有害的选项。

–sparse-version=MAJOR[.MINOR]
设置要使用的稀疏格式的版本(隐含–sparse选项)。有效参数值为0.0、0.1、1.0。

有关稀疏格式的详细讨论,请参阅GNU Tar手册,附录D,“稀疏格式”。使用info阅读器,可以通过以下命令访问它:info tar ‘Sparse Formats’。

–hole-detection=METHOD
使用METHOD检测稀疏文件中的洞。隐含了–sparse选项。METHOD的有效值:seek;raw。默认值是seek,在不适用时回退到raw。

-S, –sparse
有效处理稀疏文件。文件系统中的某些文件可能包含实际上从未写入的段(通常这些是由DBM等系统创建的数据库文件)。当给出此选项时,tar会在归档文件之前尝试确定文件是否稀疏,如果是,则通过不转储文件的空部分来减少生成的归档大小。

覆盖控制

当解压的文件要覆盖已存在与磁盘上的文件时,下面的选项可以控制tar的行为:

-k, –keep-old-files
提取时不要替换现有文件。

–keep-newer-files
当现有文件比归档文件新时,不要进行替换。

–no-overwrite-dir
保留现有目录的元数据。

–one-top-level[=DIR]
将所有文件解压缩到DIR中;或者,如果在没有参数的情况下使用,则将其提取到由归档的基本名称命名的子目录中(减去由–auto-compress可识别的标准压缩后缀)。

–overwrite
提取时覆盖现有文件。

–overwrite-dir
提取时覆盖现有目录的元数据(默认)。

–recursive-unlink
在提取之前,递归删除目录中的所有文件。

-U, –unlink-first
在提取之前,删除每个文件。

–remove-files
将文件添加到存档后,从磁盘中删除文件。

–skip-old-files
提取时不要替换现有文件,而是以静默方式跳过它们。

-W, –verify
写入完成后,验证存档。

输出流选择

-O, –to-stdout
将文件写入到标准输出中。

–to-command=COMMAND
将提取的文件传递给COMMAND。参数是外部程序的路径名,可选地带有命令行参数。将调用该程序,并在命令的标准输出上提供要提取的文件的内容。附加数据将通过以下环境变量提供:

TAR_FILETYPE,文件类型。这是一个单字母,含义如下:

f,常规文件

d,目录

l,符号链接

h,硬链接

b,块设备

c,角色设备

目前仅支持常规文件。

TAR_MODE,文件模式,八进制数。

TAR_FILENAME,文件的名称。

TAR_REALNAME,存档中存储的文件的名称。

TAR_UNAME,文件所有者名。

TAR_GNAME,文件所有者组名。

TAR_ATIME,上次访问的时间。它是十进制数,表示自纪元以来的秒数。如果存档提供具有纳秒精度的时间,则纳秒将附加到小数点后的时间戳。

TAR_MTIME,最后修改时间。

TAR_CTIME,上次状态更改的时间。

TAR_SIZE,文件大小。

TAR_UID,文件所有者的UID。

TAR_GID,文件所有者的GID。

此外,以下变量包含有关tar操作模式和正在处理的存档的信息:

TAR_VERSION,GNU tar版本号。

TAR_ARCHIVE,归档tar正在处理中的名称。

TAR_BLOCKING_FACTOR,当前块因子,即记录中512字节块的数量。

TAR_VOLUME,tar正在处理卷的序号(如果读取多卷存档,则设置该值)。

TAR_FORMAT,正在处理的存档的格式。其中一个:gnu,oldgnu,posix,ustar,v7。

TAR_SUBCOMMAND,一个描述操作tar的短选项(带有前导破折号)正在执行。

–ignore-command-error
忽略子进程退出代码。

–no-ignore-command-error
将子进程的非零退出代码视为错误(默认)。

处理文件属性

–atime-preserve[=METHOD]
通过在读取后恢复时间(METHOD=replace,这是默认值)或不首先设置时间(METHOD=system),保留转储文件的访问时间。

–delay-directory-restore
延迟设置修改时间和提取目录的权限,直到提取结束。当从具有不寻常成员排序的存档中提取时,使用此选项。

–no-delay-directory-restore
取消先前–delay-directory-restore选项的效果。

–group=NAME[:GID]
强制NAME作为添加文件的组。如果未提供GID,则NAME可以是用户名或数字GID。在这种情况下,将从当前主机的组数据库中推断出缺失的部分(GID或名称)。

与–group-map=FILE一起使用时,仅影响其所有者组未在FILE中列出的文件。

–group-map=FILE
从FILE中读取组翻译映射。空行被忽略。使用“#”符号引入注释,并延伸到行尾。FILE中的每个非空行定义单个组的翻译。它必须由两个字段组成,由任意数量的空格分隔:

OLDGRP NEWGRP[:NEWGID]

其中,OLDGRP是有效的组名或前缀为+的GID。除非提供NEWGID,否则NEWGRP也必须是有效的组名或+GID。另外,NEWGRP和NEWGID都不需要列在系统组数据库中。

因此,所有者组为OLDGRP的每个输入文件将以所有者组NEWGRP和GID NEWGID存储在存档中。

–mode=CHANGES
强制添加文件的权限为CHANGES(符号模式)。

–mtime=DATE-OR-FILE
为添加的文件设置mtime。DATE-OR-FILE是几乎任意格式的日期/时间,或现有文件的名称。在后一种情况下,将使用该文件的mtime。

-m, –touch
不提取文件修改时间。

–same-owner
尝试提取在归档中存在的所有权相同的文件(超级用户的默认值)。

–no-same-owner
提取文件,以自己的用户身份(对于普通用户是默认的)。

–no-same-permissions
从存档中提取权限时,应用用户的umask值(普通用户的默认设置)。

–numeric-owner
始终使用数字作为用户/组名称。

–owner=NAME[:UID]
强制NAME为添加文件的所有者。如果未提供UID,则NAME可以是用户名或数字UID。在这种情况下,将从当前主机的用户数据库中推断出缺失的部分(UID或名称)。

与–owner-map=FILE一起使用时,仅影响其所有者未在FILE中列出的文件。

–owner-map=FILE
从FILE读取所有者翻译映射。空行被忽略。使用“#”符号引入注释并延伸到行尾。FILE中的每个非空行定义了单个UID的转换。它必须由两个字段组成,由任意数量的空格分隔:

OLDUSR NEWUSR[:NEWUID]

其中,OLDUSR是有效的用户名或前缀为+的UID。除非提供NEWUID,否则NEWUSR也必须是有效的用户名或+UID。另一方面,NEWUSR和NEWUID都不需要列在系统用户数据库中。

因此,对于由OLDUSR拥有的每个输入文件,都将以所有者名NEWUSR和UID NEWUID存储在归档中。

-p, –preserve-permissions, –same-permissions
提取有关文件权限的信息(超级用户的默认值)

–preserve
等同于同时指定-p与-s选项。

-s, –preserve-order, –same-order
对解压的名称进行排序以匹配存档。

–sort=ORDER
创建存档时,请根据ORDER对目录条目进行排序,ORDER是none,name,inode之一。

使用–sort=none,它以与操作系统返回的顺序相同的顺序存储归档成员。这是默认值。

使用–sort=name可确保创建的存档中的成员排序是统一且可重现的。

使用–sort=inode可减少创建存档时的磁盘搜索次数,从而大大加快了归档速度。仅当底层系统提供必要信息时,才支持此排序顺序。

扩展的文件属性

–acls
启用POSIX ACL支持。

–no-acls
禁用POSIX ACL支持。

–selinux
启用SELinux上下文支持。

–no-selinux
禁用SELinux上下文支持。

–xattrs
启动扩展属性支持。

–no-xattrs
就用扩展属性支持。

–xattrs-exclude=PATTERN
指定xattr关键字的排除模式。PATTERN是POSIX正则表达式,例如 –xattrs-exclude =’^user.’,从用户名称空间中排除属性。

–xattrs-include=PATTERN
指定xattr关键字的包含模式。PATTERN是POSIX正则表达式。

设备选择与切换

-f, –file=ARCHIVE
使用存档文件或设备ARCHIVE。如果没有给出这个选项,tar将首先检查环境变量`TAPE’。如果已设置,则其值将用作存档名称。否则,tar将采用编译默认值。可以使用–show-defaults选项或tar -help输出结尾检查默认值。

其中包含冒号的ARCHIVE指定远程计算机上的文件或设备。冒号前面的部分作为机器名或IP地址,后面的部分作为文件或设备路径名,例如:

–file=remotehost:/dev/sr0

可选的用户名可以作为主机名的前缀,在它们之间放置一个@符号。

默认情况下,通过rsh(1)命令访问远程主机。现在通常使用ssh(1)代替。您可以通过提供以下命令行选项来执行此操作:

–rsh-command=/usr/bin/ssh

远程计算机应安装rmt(8)命令。如果其路径名与tar的缺省值不匹配,则可以使用–rmt-command选项通知tar有关正确的路径名。

–rmt-command=COMMAND
访问远程存档时,请使用COMMAND而不是rmt。请参阅上面的-f选项的说明。

–rsh-command=COMMAND
访问远程存档时,请使用COMMAND而不是rsh。请参阅上面的-f选项的说明。

–force-local
归档文件即使有冒号也是本地的。

-F, –info-script=COMMAND, –new-volume-script=COMMAND
在每个磁带的末尾运行COMMAND(隐含-M)。该命令可以包含参数。启动时,它将继承tar的环境以及以下变量:

TAR_VERSION,GNU tar版本号。

TAR_ARCHIVE,由tar正在处理中归档名。

TAR_BLOCKING_FACTOR,当前块因子,即记录中512字节块的数量。

TAR_VOLUME,由tar正在处理卷的序号(如果读取多卷存档,则设置该参数)。

TAR_FORMAT,正在处理的存档的格式。其中一个:gnu,oldgnu,posix,ustar,v7。

TAR_SUBCOMMAND,一个短选项,描述tar正在执行的操作(带有前导破折号)。

TAR_FD,文件描述符,可用于将新卷名称传递给tar。

如果提示脚本失败,则tar退出;否则,它开始写下一卷。

-L, –tape-length=N
写入Nx1024字节后更改磁带。如果N后跟大小后缀(请参阅下面的“大小后缀”小节),则后缀指定要使用的乘法因子而不是1024。

该选项隐含了-M选项。

-M, –multi-volume
创建/列出/提取多卷存档。

–volno-file=FILE
当此选项与–multi-volume一起使用时,tar将跟踪它在FILE中工作的多卷存档的哪个卷。

设备块

-b, –blocking-factor=BLOCKS
将记录大小设置为BLOCKSx512字节。

-B, –read-full-records
列出或提取时,在文件结束标记后接受不完整的输入记录。

-i, –ignore-zeros
忽略归档中的归零块。通常,两个连续的512个块填充零,意味着EOF以及tar在遇到它们后要停止读取。此选项指示它进一步读取,在读取使用-A选项创建的存档时非常有用。

–record-size=NUMBER
设置记录大小。NUMBER是每条记录的字节数。它必须是512的倍数。它可以后缀为大小单位,例如 –record-size=10K表示10KB。有关有效后缀的列表,请参阅“大小后缀”小节。

本地文件选择

–add-file=FILE
将FILE添加到存档(如果其名称以短划线开头,则非常有用)。

–backup[=CONTROL]
删除前进行备份。CONTROL参数(如果提供)控制备份策略。其有效值为:

none,off,从不进行备份。

t,numbered,编号备份。

nil,existing,如果存在编号备份,则进行编号备份,否则进行简单备份。

never, simple,始终做简单的备份

如果未给出CONTROL,则该值取自VERSION_CONTROL环境变量。如果未设置,则假定existing

-C, –directory=DIR
在执行任何操作之前更改为DIR。此选项“顺序敏感”,即它会影响后面的所有选项。

–exclude=PATTERN
排除匹配PATTERN的文件,这是一种glob(3)风格的通配符模式。

–exclude-backups
排除备份和锁定文件。

–exclude-caches
排除包含文件CACHEDIR.TAG的目录的内容,标记文件本身除外。

–exclude-caches-all
排除包含文件CACHEDIR.TAG的目录和文件本身。

–exclude-caches-under
排除包含CACHEDIR.TAG的目录下的所有内容

–exclude-ignore=FILE
在转储目录之前,查看它是否包含FILE。如果包含,请从此文件中读取排除模式。模式仅影响目录本身。

–exclude-ignore-recursive=FILE
与–exclude-ignore相同,但FILE中的模式同时影响目录及其所有子目录。

–exclude-tag=FILE
排除包含FILE的目录的内容,FILE本身除外。

–exclude-tag-all=FILE
排除包含FILE的目录。

–exclude-tag-under=FILE
排除包含FILE的目录下的所有内容。

–exclude-vcs
排除版本控制系统目录。

–exclude-vcs-ignores
从特定于VCS的忽略文件读取要排除的文件,支持的文件包括:.cvsignore,.gitignore,.bzrignore,.hgignore。

-X, –exclude-from=FILE
排除与FILE中列出的模式匹配的文件。

-h, –dereference
遵循符号链接;归档并转储它们指向的文件。

–hard-dereference
遵循硬链接;归档并转储它们引用的文件。

-K, –starting-file=MEMBER
从存档中的给定成员开始。

–newer-mtime=DATE
处理DATE之后数据发生变化的文件。如果DATE以“/”或“.”开头,它被视为文件名;并将该文件的mtime用作日期。

-N, –newer=DATE, –after-date=DATE
仅存储比DATE更新的文件。如果DATE以“/”或“.”开头。它被视为文件名;该文件的ctime用作日期。

–one-file-system
创建存档时,请保留在本地文件系统中。

-P, –absolute-names
创建存档时,请勿从文件名中删除前导斜杠。

–recursion
递归目录(默认)。

–no-recursion
避免在目录中自动递归。

–suffix=STRING
删除前备份,覆盖通常的后缀。默认后缀为“~”,除非被环境变量SIMPLE_BACKUP_SUFFIX覆盖。

-T, –files-from=FILE
从FILE中获取要提取或创建的名称。

除非另有说明,否则FILE必须包含由换行符(LF)分隔的名称列表(即每行一个名称)。读取的名称与命令行参数的处理方式相同。它们经过引用删除、单词拆分、任何以-开头的字符串都作为tar命令行选项处理。

如果不希望出现这种情况,可以使用–verbatim-files-from选项关闭它。

选项–null指示tar,在FILE中的名称由ASCII NUL字符而不是LF分隔。如果FILE列表由find(1)的谓词-print0生成,则非常有用。

–null
指示后续-T选项逐字读取以NUL字符结尾的名称(禁用以破折号开头的名称的特殊处理)。

另请参阅–verbatim-files-from选项。

–no-null
禁用前一个–null选项的效果。

–verbatim-files-from
将从文件列表中获取的每一行视为文件名,即使它以短划线开头。文件列表由–files-from(-T)选项一起提供。默认行为是处理文件列表中提供的名称,就好像它们是在命令行中键入的那样,即任何以短划线开头的名称都被视为tar选项,而–verbatim-files-from选项禁用此行为。

此选项会影响命令行中出现的所有–files-from选项。选项–no-verbatim-files-from可以反转它的效果。

选项–null隐含了此选项。

另请参阅–add-file选项。

–no-verbatim-files-from
将从文件列表中读取的每一行视为在命令行中提供的。即,删除前导和尾随空格,如果结果字符串以短划线开头,则将其视为tar命令行选项。

这是默认行为。在–verbatim-files-from选项之后提供–no-verbatim-files-from选项将恢复它的行为。

此选项是位置相关的:它影响所有–files-from其后的选项,直到–verbatim-files-from选项或行结束,以先发生者为准。

该选项由–no-null选项隐含。

–unquote
取消引用输入文件或成员名称。

–no-unquote
不要取消引用输入文件或成员名称。

文件名转换

–strip-components=NUMBER
在提取时,从文件名中删除NUMBER个前导组件。

–transform=EXPRESSION, –xform=EXPRESSION
使用sed替换EXPRESSION来转换文件名。

文件名匹配选项

这些选项会影响排除和包含模式:

–anchored
模式匹配文件名的开始。

–no-anchored
模式匹配任何/之后的内容(默认为排除)。

–ignore-case
忽略大小写。

–no-ignore-case
大小写敏感配置。默认行为。

–wildcards
使用通配符(默认为排除)。

–no-wildcards
逐字的字符串匹配。

–wildcards-match-slash
通配符与/匹配(默认为排除)。

–no-wildcards-match-slash
通配符,与/不匹配。

信息输出

–checkpoint[=N]
每隔N个记录显示一次进度消息(默认值为10)。

–checkpoint-action=ACTION
在每个检查点上运行ACTION。

–clamp-mtime
仅文件比–mtime给出的文件更新时,才设置时间。

–full-time
将文件时间打印为完整分辨率,包含了所有的精度。

–index-file=FILE
将详细输出发送到FILE。

-l, –check-links
如果没有转储所有链接,则打印消息。

–no-quote-chars=STRING
禁用对STRING中字符的引用。

–quote-chars=STRING
另外引用在STRING中的字符。

–quoting-style=STYLE
设置文件和成员名的引用风格。STYLE的有效值是:literal, shell, shell-always, c, c-maybe, escape, locale, clocale

-R, –block-number
与每条消息一起显示存档中的块编号。

–show-omitted-dirs
列出或解压缩时,列出与搜索条件不匹配的每个目录。

–show-transformed-names, –show-stored-names
通过–strip和–transform选项转换后,显示文件或存档名称。

–totals[=SIGNAL]
处理存档后,打印总字节数。如果给出SIGNAL,则在传送此信号时打印总字节数。允许的信号是:SIGHUP,SIGQUIT,SIGINT,SIGUSR1,SIGUSR2。SIG前缀可以省略。

–utc
以UTC格式打印文件修改时间。

-v, –verbose
详细列出已处理的文件。

–warning=KEYWORD
启用或禁用由KEYWORD标识的警告消息。如果KEYWORD前缀为“no-”,则禁止消息,否则启用。

多个–warning则会消息累积。KEYWORD控制一般tar操作:

all,启用所有的警告信息。这是默认的。

none,禁用所有的警告信息。

filename-with-nuls,”%s: file name read contains nul character”

alone-zero-block,”A lone zero block at %s”

用于tar –create的关键字:

cachedir,”%s: contains a cache directory tag %s; %s”

file-shrank,”%s: File shrank by %s bytes; padding with zeros”

xdev,”%s: file is on a different filesystem; not dumped”

file-ignored,”%s: Unknown file type; file ignored”、”%s: socket ignored”、”%s: door ignored”

file-unchanged,”%s: file is unchanged; not dumped”

ignore-archive,”%s: file is the archive; not dumped”

file-removed,”%s: File removed before we read it”

file-changed,”%s: file changed as we read it”

用于tar –extract的关键字:

existing-file,”%s: skipping existing file”

timestamp,”%s: implausibly old time stamp %s”、”%s: time stamp %s is %s s in the future”

contiguous-cast,”Extracting contiguous files as regular files”

symlink-cast,”Attempting extraction of symbolic links as hard links”

unknown-cast,”%s: Unknown file type ‘%c’, extracted as normal file”

ignore-newer,”Current %s is newer or same age”

unknown-keyword,”Ignoring unknown extended header keyword ‘%s'”

decompress-program,在尝试运行备用解压缩程序时,控制发生的故障的详细描述。默认情况下禁用此警告(除非使用–verbose)。下面是一个“使用此警告时可以获得的输出”的示例:

# tar –warning=decompress-program -x -f archive.Z

tar (child): cannot run compress: No such file or directory

tar (child): trying gzip

这意味着tar首先尝试使用compress解压缩archive.Z,并且当失败时,切换到gzip。

record-size,”Record size = %lu blocks”

控制增量提取的关键词:

rename-directory,”%s: Directory has been renamed from %s”、”%s: Directory has been renamed”

new-directory,”%s: Directory is new”

xdev,”%s: directory is on a different device: not purging”

bad-dumpdir,”Malformed dumpdir: ‘X’ never used”

-w, –interactive, –confirmation
要求确认每个动作。

兼容性选项

-o
创建时,与–old-archive相同。提取时,与–no-same-owner相同。

大小后缀

Suffix    Units                   Byte Equivalent	
b         Blocks                  SIZE x 512	
B         Kilobytes               SIZE x 1024	
c         Bytes                   SIZE		
G         Gigabytes               SIZE x 1024^3	
K         Kilobytes               SIZE x 1024	
k         Kilobytes               SIZE x 1024	
M         Megabytes               SIZE x 1024^2	
P         Petabytes               SIZE x 1024^5	
T         Terabytes               SIZE x 1024^4	
w         Words                   SIZE x 2	

退出状态

0 执行成功。

1 有些文件不同。如果使用–compare(–diff,-d)命令行选项调用tar命令,则表示存档中的某些文件与其磁盘对应文件不同。如果tar给出了–create, –append,–update选项之一,则此退出代码表示某些文件在归档时已更改,因此生成的归档文件不包含文件集的确切副本。

2 致命错误。这意味着发生了一些致命的,不可恢复的错误。

如果由tar调用的子进程以非零退出代码退出,则tar本身也会以该代码退出。例如,如果使用压缩选项(例如-z)并且外部压缩程序失败,则会发生这种情况。另一个例子是在备份到远程设备期间的rmt故障。

相关手册

bzip2(1), compress(1), gzip(1), lzma(1), lzop(1), rmt(8), symlink(7), tar(5), xz(1).

Complete tar manual: run info tar or use emacs(1) info mode to read it.

Online copies of GNU tar documentation in various formats can be found at http://www.gnu.org/software/tar/manual

该手册是GNU tar的简短描述。有关详细讨论,包括示例和使用建议,请参阅texinfo格式的GNU Tar手册。如果info和tar文档已正确安装在您的系统上,则info tar可以访问完整的手册。

您还可以使用emacs(1)中的info模式查看手册,或者在线查找各种格式的手册

如果本手册页面和GNU Tar手册之间出现任何差异,已官方为准。

参考文献

man 1 tar, Version 1.29b-1.1
How To Extract a Tar Files To a Different Directory on a Linux/Unix-like Systems – nixCraft