tar { -c | -r | -t | -u | -x } [ -b Blocks ] [ -B ] [ -d ] [ -F ] [ -h ] [ -i ] [ -L InputList ] [ -l ] [ -m ] [ -N Blocks ][ -o ] [ -p ] [ -s ] [ -v ] [ -w ] [ -Number ] [ -f Archive ] [ -S Blocksb | -S Feet | -S Feet@Density ] [ File | Directory | -C Directory ] ...
注意:由于在 tar 命令中对头块空间的限制,当恢复到某些系统时,大于 65,535 的用户号(UID)和组标识号(GID)将毁坏。大小约束只影响所有权和许可权而不对数据造成损害。所有权的毁坏发生在下列系统中:
tar 命令通过将文件写入归档存储介质或将文件从介质中取回,来处理归档。 由 tar 命令使用的文件通过 File 参数来表示。如果 File 参数引用一个目录,则引用该目录并递归引用该目录下全部的文件和目录。
tar 命令在缺省设备(通常是磁带)上寻找归档,除非使用 -f Archive 标志指定另一个设备。当为美国磁带归档程序(USTAR)格式指定大于 100 个字符的路径名称时,请记住路径名称是由一个前缀缓冲区、一个 /(斜杠)和一个名称缓冲区组成的。
前缀缓冲区最大可以有 155 字节,而名称缓冲区最大可以容纳 100 字节。如果路径名称不能用斜杠分割为这两部分,则它不能被归档。这个限制是考虑到 tar 归档头的结构,而且必须为了符合标准和向下兼容而维护该限制。另外,硬链接或符号链接(“链接名称”)的目标长度不能超出 100 字节。
当写到归档时,tar 命令使用一个临时文件(/tmp/tar* 文件),并在内存中维护一个包含多链接文件的表。如果 tar 命令不能创建临时文件,或者没有足够的可用内存来放置链接表,您会接收到错误消息。
tar 命令有两组标志:必需标志和可选标志。必需标志控制 tar 命令的操作,包括 -c、-r、-t、-u 和 -x 标志。要执行 tar 命令至少要选择一个必需标志。选择了必需标志后,您可以选择一个可选标志,但它们对控制 tar 命令都不是必要的。
tar: 更新和替换选项对流式磁带机无效。
chdev -1 <device_name> -a block_size=32k
要了解更多关于使用磁带设备的信息,请参阅 rmt 特殊文件。
tar 命令的标志有两组,必需的和可选的。必须提供至少一个必需标志来控制 tar 命令。
必需标志 | |
-c | 创建新的归档,并将由一个或多个 File 参数所指定的文件写入归档的开头。 |
-r | 将由一个或多个 File 参数所指定的文件写入归档的最后。这个标志不是对任何磁带设备都有效,因为有些设备不支持在磁带的最后添加信息。 |
-t | 按照文件在归档中的顺序列出文件。文件可能会多次列出。 |
-u | 只有当文件不在归档中,或写入归档后被修改过,才将这些文件(由一个或多个 File 参数所指定)写入归档的最后。-u 标志不是对任何磁带设备都有效,因为有些磁带设备不支持在磁带的最后添加信息。 |
-x | 从归档中抽取一个或多个 File 参数指定的文件。如果 File 参数是指一个目录, tar 命令递归地从归档中抽取那个目录。 如果您未指定 File 参数,tar 命令从归档中抽取所有的文件。如果归档中包含同一文件的多个副本,最后抽取的副本覆盖所有以前抽取的副本。如果被抽取的文件在系统中不存在,则创建该文件。如果您有适当的许可权,tar 命令用与磁带上的相同所有者和组标识恢复所有文件和目录。如果您没有适当的许可权,将以您的所有者标识和组标识恢复文件和目录。只能请求文件最后出现的版本。 |
可选标志 | |
-B | 输入分块和输出分块强制为每个记录 20 块。使用这个选项,tar 命令可在那些可能未维护分块的通信信道间执行。 |
-b Blocks | 指定每个记录的 512 字节块数量。缺省值和最大值都是 20,这是对磁带记录适当的数目。由于记录间隙大小的原因,用大的分块因子写的磁带可以比每个记录只有一块的磁带保存更多的数据。
当读取磁带时,块大小自动确定(-x 或 -t 功能标志)。归档被 -u 和 -r 功能更新时,使用现有的记录大小。只有当使用 -c 标志创建新的归档时,tar 命令才使用 Blocks 参数指定的值写入归档。 当用 -f 标志输出到普通文件时,您可以使用与磁盘块大小相匹配的分块因子来节省磁盘空间(例如,对于 2048 字节的磁盘块,使用 -b4 标志)。 |
-C Directory | 使 tar 命令向由 Directory 变量指定的目录执行 chdir 子例程。使用 -C 标志允许归档不用相近公共父目录来关联的多个目录,使用简短的相对路径名称。例如,要从 /usr/include 和 /etc 目录中归档文件,可以使用下列命令:
tar c -C /usr/include File1 File2 -C /etc File3 File4
-C Directory 标志必须在所有其它标志后出现,也可以在给定的文件名列表中出现。 |
-d | 为块文件、特殊字符文件以及先进先出(FIFO)管道进程创建单独条目。通常,tar 命令不会归档这些特殊文件。当使用 -d 标志写入归档时,tar 命令使归档可以用 -x 标志恢复空目录、特殊文件以及先进先出(FIFO)管道进程。
注:
虽然任何人可以归档特殊文件,但只有拥有 root 用户权限的用户可以从归档中抽取特殊文件。 |
-F | 在归档前检查文件类型。源代码控制系统(SCCS),修订控制系统(RCS),名为 core、errs 和 a.out 的文件,以及以 .o(点 o)结束的文件不归档。 |
-f Archive | 使用 Archive 变量表示要读或写的归档。当未指定这个标志,tar 命令使用一个针对特定系统的缺省文件名(格式为 /dev/rmt0)。如果指定的 Archive 变量是 -(减号),tar 命令写入标准输出或从标准输入中读取。如果写入标准输出,您必须使用 -c 标志。 |
-h | 强制 tar 命令监视符号链接,就好象它们是常规文件或目录。通常,tar 命令不监视符号链接。 |
-i | 忽略头校验和的错误。tar 命令在归档中写入一个文件头,它包含每个文件的校验和。如果未指定这个标志,系统通过重新计算校验和来验证头块的内容,并在发生不匹配时,停止并报目录校验和错误。如果指定这个标志,tar 命令将记录错误,然后向前扫描直到查找到一个有效的头块。这就允许从多卷归档的后面的卷中恢复文件,而不需读取前面的卷。 |
-L InputList | :-L 选项的 Inputlist 参数应该总是一个文件名称,该名称列出需要归档的文件和目录。 同样地,InputList 参数可以是一个保存某文件名称的变量,该文件列出要归档的文件和目录。 这个选项帮助将列在 InputList 参数中的文件和目录写入归档。 InputList 参数中的目录不被递归。对于包含于 InputList 参数中的目录,tar 命令只将目录写入归档,而不将目录中的文件和子目录写入归档。 如果额外的文件和目录在命令行中跟在 InputList 参数后,InputList 参数的内容归档在这些文件和目录之后。 这些额外的文件或目录按它们的缺省行为归档,即将它们递归地归档。 |
-l | 对于每个带有链接数大于 1 的文件,而其相应的链接却未归档,写错误消息到标准输出。 例如,如果 file1 和 file2 是用硬链接链接在一起,而只有 file1 存放在归档中,则 -l 标志将发出错误消息。 如果未指定 -l 标志,将不显示错误消息。 |
-m | 使用抽取时间作为修改时间。缺省是保留文件的修改时间。 |
-N Blocks | 当 tar 命令处理流式磁带归档时,允许它使用很大的块的簇。 然而请注意,在输入时,如果用这个标志创建了非常长的块大小, tar 命令将不能自动确定磁带的块大小。 没有 -N Blocks 标志时,tar 命令可以自动确定的最大块大小为 20 块。 |
-o | 提供与旧版本(非 AIX)tar 命令的向下兼容。当使用这个标志进行读取时,被抽取的文件使用运行程序的用户的用户标识和组标识(UID 和 GID),而不是归档中的用户标识和组标识。 这是对于普通用户的缺省行为。 |
-p | 恢复字段到它们的原始方式,忽略现有的用户权限屏蔽位(umask)。 setuid、setgid 和 tacky 位许可权也恢复给拥有 root 用户权限的用户。 这个标志恢复文件到其原始方式,但不恢复目录到其原始方式。 |
-s | 如果 tar 命令未能使用 -s 标志成功尝试链接(常规链接)两个文件,请试着创建符号链接。 |
-SBlocksb, -S Feet, -S Feet@Density | 指定每卷中的 512KB 块的数目(第一种格式),不依赖于磁带分块因子。
您也可以使用第二种格式,用英尺来指定磁带大小,在这种情况下,tar 命令假定一个缺省的 Density 变量。第三种格式允许您指定磁带长度和密度。
英尺被保守地假定为 11 英寸长。
这个标志让您更容易处理多卷磁带归档,这时 tar 命令必须能够确定每卷能放入多少块。
注:
|
-v | 在处理每个文件时,列出它们的名称。使用 -t 标志,-v 给出磁带条目的更多信息,包括文件大小、上次修改的时间、用户标识(UID)、组标识(GID)和许可权。 |
-w | 显示要进行的操作,跟着是文件名,然后等候用户确认。 如果回答是肯定的,则执行操作。 如果回答不是肯定的,则忽略文件。 |
-Number | 使用 /dev/rmtNumber 文件,而不是缺省值。例如,-2 标志 和 -f/dev/rmt2 文件是相同的。 |
该命令返回下列退出值:
0 | 成功完成。 |
>0 | 有错误发生。 |
tar -xm -f/dev/rmt2 /tmp
tar -cvf - file1 | dd of=/dev/rmt1 conv=sync
tar -vtf out.tar
zcat fil.tar.Z | tar -xvf -
cd /usr tar -cvf/dev/rmt0 -C./include . -C ../bin .
tar -cvf /dev/rmt0 -S 4800000b /usr
tar -cvf fl.tar -L fl_list这里,fl_list 是一个文件,它包含一个所有 .c 文件的列表。这可以通过以下命令获得:
ls *.c > fl_list
ls *.c > fl_list fl=fl_list tar -cvf var.tar -L $fl
/dev/rmt0 | 指定缺省磁带设备。 |
/bin/tar | 指定 tar 命令的符号链接。 |
/usr/bin/tar | 包含 tar 命令。 |
/tmp/tar* | 指定临时文件。 |
rmt 特殊文件。
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 File Systems 解释了文件系统类型、管理、结构以及维护。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『目录概述』解释了使用目录和路径名称。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『文件概述』提供了使用文件的信息。