标题: Restoring a "tar" Backup with Absolute Path Names
瓜小南
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14


UID 128
精华 32
积分 1808
帖子 3485
活跃指数 10
LU金币 188 个
LU金条 0 个
阅读权限 200
注册 2003-9-26
 
发表于 2003-9-30 11:14  资料  个人空间  短消息  加为好友 
Restoring a "tar" Backup with Absolute Path Names to a Different Directory


发帖:shala  发表时间:2003-5-8 11:11:26   来自IP:88.88.88.88

--------------------------------------------------------------------------------


A tar backup created using absolute path names can only be restored to the directory from which it was created. One way to restore it to a different directory is by using the pax command.
For example, suppose you receive a tar tape created using absolute path names:
tar -cvf /dev/rmt0 /work/*
but want to restore it to the /test directory. The pax command would be:
pax -rf /dev/rmt0 -s/work/test/p
The -s/work/test/p does the directory change.



--------------------------------------------------------------------------------
有一天夏娃问亚当:“你真的爱我吗?”亚当无奈的回答:“爱,我有所选择吗?!

[无标题]


发帖:shala  发表时间:2003-5-8 11:13:24   来自IP:88.88.88.88

--------------------------------------------------------------------------------


raypru (TechnicalUser) May 6, 2003
------------------------------------------------------------------------------------------
This is a great tip. In the past I have needed to restore from a multiple level directory i.e. /home/ops/raypru. Restoring to /tmp can be achieved by the following:-

pax -rf /dev/rmt0 -s/home\\/ops\\/raypru/tmp/p


--------------------------------------------------------------------------------
有一天夏娃问亚当:“你真的爱我吗?”亚当无奈的回答:“爱,我有所选择吗?!

pax 命令


发帖:shala  发表时间:2003-5-8 13:09:07   来自IP:88.88.88.88

--------------------------------------------------------------------------------


pax 命令

用途
抽取、写以及列出归档文件成员;复制文件和目录层次结构。

语法
要列出归档文件的成员文件
pax [ -c ] [ -d ] [ -n ] [ -v ] [ -H | -L ] [ -f Archive ] [ -s ReplacementString ... ] [ -x Format ] [ -o Options ] [ Pattern ... ]

使用 -r 标志来抽取归档文件
pax -r [ -c ] [ -d ] [ -i ] [ -k ] [ -n ] [ -u ] [ -v ] [ -H | -L ] [ -f Archive ] [ -o Options ] [ -p String ... ] [ -s ReplacementString ... ] [ -x Format ] [ Pattern ... ]

使用 -w 标志来写归档文件
pax -w [ -d ] [ -i ] [ -t ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -b Blocking ] [ [ -a ] -f Archive ] [ -o Options ] [ -s ReplacementString ... ] [ -x Format ] [ File ... ]

使用 -r 和 -w 标志来复制文件
pax -r -w [ -d ] [ -i ] [ -k ] [ -l ] [ -n ] [ -t ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -p String ... ] [ -o Options ] [ -s ReplacementString ... ] [ -x Format ] [ File ... ] Directory

描述
pax 命令抽取以及写归档文件的成员文件;写归档的成员文件列表;以及复制目录层次结构。 -r 和 -w 标志指定了归档操作的类型。


注:pax 主动疏松正在恢复的文件。如果文件有植入了 NULL 值的块间对齐和大小特定的区域,pax 不会为那些文件系统块分配物理空间。文件的大小(以字节计)保持不变,但在文件系统内实际占用的空间只是非 NULL 区域。
列出已归档文件的成员文件(列表方式)
当 -r 和 -w 标志均未指定时,pax 命令列出所有读取自标准输入的归档文件的成员文件。如果指定 Pattern 参数,只有路径名匹配指定模式的成员文件写到标准输出。如果指定的文件是一个目录,目录包含的文件层次结构也会写出。当 -r 和 -w 标志均未指定时,可以指定 -c、-d、-f、-n、-s 和 -v 标志以及 Pattern 参数。

使用 -r 标志抽取归档文件(读取方式)
当指定了 -r 标志而未指定 -w 标志时,pax 命令抽取读取自标准输入的归档文件的所有成员文件。如果指定了 Pattern 参数,只有路径名匹配指定模式的成员文件写到标准输出。如果指定的文件是一个目录,目录包含的文件层次结构也会抽取。 -r 标志可以与 -c、-d、-f、-i、-k、-n、-s、-u 和 -v 标志,以及 Pattern 参数一起指定。

抽取出的文件的存取和修改时间与归档文件相同。抽取文件的文件方式与它们归档时相同,除非受到用户的缺省文件创建方式(umask)的影响。抽取文件的 S_ISUID 和 S_ISGID 位被清除。

如果需要中间目录来抽取一个归档成员,pax 命令创建目录,将其存取许可权设为 S_IRWXU、S_IRWXG 和 S_IRWXO 掩码的一位宽度或(OR)。

如果选定的归档格式支持已链接文件的规范,当抽取归档文件后如果这些文件不能链接,就会产生错误。

使用 -w 标志写归档文件(写方式)
当指定了 -w 标志而未指定 -r 标志时,pax 命令将 File 参数指定文件的内容以归档格式写到标准输出。如果未指定 File 参数,从标准输入读取要复制的文件列表(每行一个文件)。当 File 参数指定了一个目录时,将写目录包含的所有文件。 -w 标志可以与 -a、-b、-d、-f、-i、-o、-s、-t、-u、-v、-x 和 -X 标志,以及 File 参数一起指定。

当指定超过 100 个字符的 United States Tape Archiver(USTAR)格式的路径名时,要记住路径名由前缀缓冲区、一个 /(斜线)和名称缓冲区组成。前缀缓冲区最大可以有 155 个字符,名称缓冲区最大可容纳 100 个字符。如果路径名无法以斜线分割成这两部分,就不能归档。这个限制是由于 tar 归档文件头部分的结构,而且必须维护使其符合标准和向下兼容。

用 -r 和 -w 标志复制文件(复制方式)
当一同指定 -r 和 -w 标志时,pax 命令将由 File 参数指定的文件复制到 Directory 参数指定的目的地目录中。如果没有指定文件,从标准输入读取要复制的文件列表(每行一个文件)。如果指定的文件是一个目录,目录包含的文件层次结构也会复制。 -r 和 -w 标志可以与 -d、-i、-k、-l、-o、-p、-n、-s、-t、-u、-v 和 -X 标志以及 File 参数一起指定。Directory 参数必须指定。

复制的文件与将它们写入到归档文件然后抽取出来一样,除非源文件和复制的文件之间可能有硬链接。

用 -o 标志修改归档算法
使用 -o 标志根据关“键字-值”对来修改归档算法。 “关键字-值”对必须遵循正确的归档格式。有效关键字及其行为的列表在后继的 -o 标志的描述中给出。

进一步的注意事项
在读取或复制方式下,如果需要中间目录来抽取归档成员,pax 执行与 mkdir() 子例程相同的操作,中间目录作为路径参数,值 S_IRWXU 作为方式参数。

如果没有任何指定的模式或文件操作数与至少一个文件或归档成员匹配,pax 为每个不匹配的模式或文件操作数写一条诊断消息到标准错误,并以错误状态退出。

遍历目录过程中,pax 将检测无限循环;例如,进入一个作为最后访问文件的祖先的先前访问的目录。在检测到无限循环时,pax 将诊断消息写到标准错误然后终止。

当 pax 处于读取方式或列表方式,使用 -x pax 归档格式和文件名、链接名、所有者名或任何其它扩展的头记录中的字段,这些字段无法从 pax UTF8 编码集格式转换到当前编码集和语言环境,pax 写诊断消息到标准错误,如 -o invalid= 选项所描述的那样处理文件,然后处理归档中的下一个文件。

变量

Directory 复制文件时指定目的地目录的路径。
File 指定要复制或归档的文件的路径。如果没有文件匹配 File 参数,pax 命令检测错误、退出并写诊断消息。
Pattern 指定匹配一个或多个归档成员路径的模式。 / (反斜杠)字符在 Pattern 参数中无法识别,并使后继字符不再含有特殊意义。如果未指定 Pattern 参数,将选择归档中的所有成员。
如果指定了 Pattern 参数,但未发现匹配指定模式的归档成员,pax 命令检测错误、退出并写诊断消息。


标志

-a 将文件附加到归档末尾。

注:流式磁带设备不允许附加。
-b Blocking 指定输出的块大小。Blocking 参数指定一个正的十进制整数值来指定每块的字节数。符合 POSIX2 的应用程序不应当指定大于 32256 的块大小值。设备和归档格式可以给分块强加限制。分块在输入时自动确定。创建归档时的缺省分块取决于归档格式。(请参阅 -x 标志定义。)
Blocking 参数的值可以是下列之一:

Integer b
以字节指定块大小为 Integer 参数乘 512 所指定的正十进制整数的值。
Integer k
以字节指定块大小为 Integer 参数乘 1024 所指定的正十进制整数的值。
Integer m
以字节指定块大小为 Integer 参数乘 1024 x 1024 所指定的正十进制整数的值。
Integer+Integer
以字节指定块大小为各 Integer 参数所指定的正十进制整数的和。
-c 匹配所有文件和归档成员,除了那些用 Pattern 参数指定的。
-d 使正在复制、归档或抽取的目录仅匹配目录本身而不是目录的内容。
-f Archive 指定用作取代标准输入(未指定 -w 标志时)或标准输出(指定了 -w 标志但未指定 -r 标志时)的归档文件的路径。当指定 -a 标志选项时,任何写到归档的文件都附加到归档尾部。
-H 如果引用目录的符号链路在命令行指定,pax 将链接名称作为文件层次结构的名称,对来源于链接中引用的目录中的文件层次结构归档。缺省情况下,pax 归档符号链接自身。
-i 交互地重命名文件或归档。对每个匹配 Pattern 参数的归档成员或匹配 File 参数的文件,写一个提示到包含文件或归档成员名称的显示设备。然后从显示设备读取一行。如果该行为空,略过文件或归档成员。如果该行由单独一个句号构成,处理文件或归档成员但不修改其名称。否则,其名称替换成行的内容。
-k 防止 pax 命令改写现有文件。
-l 复制文件时链接文件。只要可能就在源和目的层次结构间建立硬链接。
-L 如果引用目录的符号链接在命令行指定或者在遍历文件层次结构期间遇到,pax 将链接名称作为文件层次结构的名称,对来源于链接中引用的目录的文件层次结构归档。缺省情况下,pax 归档符号链接自身。
-n 选择匹配每个 Pattern 参数的第一个归档成员。只有一个归档成员匹配一个模式。
-o Options 根据定义在 Options 参数中的“关键字-值”对来修改归档算法。“关键字-值”对必须按下列格式:
keyword:=value,keyword:=value,...

某些关键字只应用于特定的文件格式,这一点在每个描述中指出。 pax 将忽略使用不适用于正在处理的文件格式的关键字。

关键字可以空格开始。 value 字段由零个或更多的字符构成;在 value 中,任何文字逗号必须以反斜杠 (\) 开始。 Options 中作为最终字符的逗号,或后面只跟有空格作为最终字符的逗号,都将被忽略。可以指定多个 -o 选项。如果给这些多个 -o 选项的关键字冲突,在命令行序列中晚出现的关键字和值有优先权;早出现的值被忽略。

下列“关键字-值”对支持指出的文件格式:

datastream=pathname 和 datastr_size=size(适用于所有文件格式。)

datastream 关键字表示输入的归档文件不属于一个文件格式;相反,它是来自标准输入设备的数据流。因此,数据应该归档为 -x 标志识别的格式的常规文件。数据流的文件名应该在 pathname 参数中指定,并包括调用命令的人员的标识、组标识和表示文件方式的 umask。


注:datastream 关键字没有缺省变量大小。必须指定一个。
datastr_size 关键字使用十进制数字表示数据流输入的字节数大小。如果 pax 命令在读取 size 参数前遇到文件结束(EOF)字符,它会为归档文件填入空值。空值使归档文件和 size 参数指定的大小相同。如果归档文件的数据超出指定的大小,pax 命令将归档文件截断为 size 参数指定的大小。pax 命令还停止接收输入,并关闭归档文件。


注:可以指定关键字队的多个实例。如果给相同关键字分配了不同值,pax 命令使用最后分配给关键字的值来执行 -o 标志。
delete=pattern(仅适用于 -x pax 格式。)

在用于写或复制方式的时候,pax 在它产生的扩展头记录中省略所有匹配 pattern 的关键字。在用于读或列出方式的时候,pax 忽略扩展头记录中任何匹配 pattern 的关键字。在所有情况下,使用标准外壳程序模式匹配记号来完成匹配。例如,-o delete=security.* 禁止与安全性相关的信息。



-o Options(续)

exthdr.name=string(仅适用于 -x pax 格式。)

该关键字允许用户控制用于扩展首记录的写进 ustar 头块的名称。名称是做过下列字符替换后 string 的内容:

string 包含:
被替换:
%d
文件的目录名,等同于 dirname 实用程序在已转换路径名上的结果。
%f
文件名,等同于 basename 实用程序在已转换路径名上的结果。
%%
一个 % 字符
其它任何 string 中的 % 字符产生未定义的结果。如果该“关键字-值”对未在 -o Options 列表中指定,名称的缺省值是:

%d/PaxHeaders/%f

globexthdr.name=string(仅适用于 -x pax 格式。)

当带有适当选项以写或复制方式使用时,pax 创建全局扩展头记录,其 ustar 头块被 pax 的先前版本按照常规文件处理。该关键字允许用户控制用于扩展头记录的写进 ustar 头块的名称。名称是做过下列字符替换后 string 的内容:

string 包含:
被替换:
%n
归档中表示全局扩展头记录序列号的整数(从 1 开始)
%%
一个 % 字符
其它任何 string 中的 % 字符产生未定义的结果。如果该“关键字-值”对未在-o Options 列表中指定,名称的缺省值是

$TMPDIR/GlobalHead.%n

$TMPDIR 或者是 TMPDIR 环境变量的值,或者是 /tmp,如果 TMPDIR 取消设置。

invalid=action(仅适用于 -x pax 格式。)

该关键字允许用户控制 pax 基于扩展头记录中遇到的值采取的操作,这些值:

处于读取或复制方式,在目的地层次结构中无效,或
处于列表方式,不能写入编码集和当前语言环境。



-o Options(续) pax 识别这些无效值:

在读取或复制方式,目的地层次结构中包含无效字符编码的文件名或链接名。(例如,名称可能包含嵌入的 NULL。)
在读取或复制方式,长于目的地层次结构允许的最大值的文件名或链接名(对于路径名的组成部分或整个路径名)。
在列表方式,任何不能写入编码集和当前语言环境的字符串值(文件名、链接名、用户名等)。
支持这些 action 参数的相互排斥的值:

bypass
在读取或复制方式,pax 忽略文件,不改变目的层次结构。在列表方式,pax 写文件所有有效的请求值,但未指定写无效值的方法。

rename
在读取或复制方式,pax 运行就如同 -i 标志对每个有无效文件名或链接名值的文件有效,它允许用户交互地提供替换名。在列表方式,pax 等同于 bypass 的操作。

UTF8
当使用在读取、复制或列表方式,且文件名、链接名、所有者名或任何扩展头记录中的其它字段不能由 pax UTF8 编码集格式转换到当前编码集或语言环境,pax 为名称使用实际的 UTF8 编码。

write
在读取或复制方式,pax 写文件、转换或截断名称,不考虑这是否可能会覆盖现有的具有有效名称的文件。在列表方式,pax 等同于 bypass 的操作。

如果未指定 -o invalid=action,pax 像已指定 bypass 操作那样执行。任何由 -o invalid=actions 允许的对现有文件的覆盖受到权限(-p)和修改时间(-u)的限制,如果也指定了 -k 标志就会禁止覆盖。

linkdata(仅适用于 -x pax 格式。)

在写方式下,pax 将文件内容写入归档,即使文件仅是到一个内容已写入归档的文件的硬链接。



-o Options(续) listopt=format(适用于所有文件格式。)

该关键字指定当 -v 选项在列表方式中指定时,产生的目录的输出格式。为避免多义性,该“关键字-值”对应该用作跟在 -o 标志后的唯一或最终“关键字- 值”对;可选参数剩余的所有字符被认为是格式字符串的一部分。如果指定了多个 -o listopt=format 选项,格式字符串被认为是单独的、连接的字符串(以命令行顺序评估)。请参考列表方式格式规范 一节以获得更多信息。

times(仅适用于 -x pax 格式。)

在用于写或复制方式的时候,pax 包含每个文件的 atime、ctime 和 mtime 扩展头记录。


扩展头关键字
(仅适用于 -x pax 格式。)

如果指定了 -x pax 格式,那么以下列表中定义的任何关键字和值可以以下面两种方式之一用作 -o 标志的参数:

keyword=value


在使用于写或复制方式的时候,这些“关键字-值”对写到新归档中的全局扩展头记录中。在使用于读取或列出方式的时候,这些“关键字-值”对就像它们存在于正在读取的归档的全局扩展头记录中一样起作用。在这两种情况下,给定的值适用于所有的单独扩展头记录中没有赋予指定关键字值的文件。
keyword:=value


在使用于写或复制方式的时候,这些关“键字-值”对写到新归档中每个文件的扩展头记录中。在使用于读取或列出方式的时候,这些关“键字-值”对就像它们存在于正在读取的归档的全局扩展头记录中一样起作用。在这两种情况下,给定的值覆盖了全局或指定文件的扩展头记录中的指定关键字的任何值。
atime

以下文件的文件存取时间,等于文件的 stat 结构的 st_atime 成员的值。

charset

用于编码以下文件中的数据的字符集名称。定义此表中的条目来参考已知的标准:

值 正式标准
『ISO-IR 646 1990』 ISO/IEC 646 IRV
『ISO-IR 8859 1 1987』 ISO 8859-1
『ISO-IR 8859 2 1987』 ISO 8859-2
『ISO-IR 10646 1993』 ISO/IEC 10646
『ISO-IR 10646 1993 UTF8』 ISO/IEC 10646, UTF8 编码
『BINARY』 无

编码包含在仅作为信息的扩展头中;当如所述使用 pax 的时候,它不会将文件数据转换为其它编码。 BINARY 项表示未经编码的二进制数据。

comment

用作注释的一系列字符。pax 忽略了值字段中的所有字符。

ctime

随后文件的文件创建时间,等于文件的 stat 结构的 st_ctime 成员的值。

gid

拥有文件的组的组标识,表示为使用来自 ISO/IEC 646 的数字的十进制数。该记录覆盖了以下头块中的 gid 字段。在使用于写或复制方式的时候, pax 包含组标识大于 99,999,999 的每个文件的 gid 扩展头记录。

gname

以下文件的组,格式化为组数据库中的组名称。该记录覆盖了以下头块中的 gid 和 gname 字段,以及任何 gid 扩展头记录。在使用于读取、复制或列表方式的时候,pax 将头记录中 UTF8 编码的名称转换为适用于接收系统上组数据库的字符集。如果任何一个 UTF8 字符不能转换,而且未指定 -o invalid=UTF8 选项,那么结果是不确定的。在使用于写或复制方式的时候,pax 包含那些组名称不能完全使用可移植字符集中的字母和数字表示的每个文件的 gname 扩展头记录。

linkpath

创建到另一个以前归档的任何类型的文件上的链接的路径名。该记录覆盖了以下 ustar 头块中的 linkname 字段。

以下的 ustar 头块确定了创建的链接类型,无论是硬链接还是符号链接。在后一种情况下,链接路径的值为符号链接的内容。 pax 将链接的名称(符号链接的内容)从 UTF8 编码转换为适合本地文件系统的字符集。

在使用于写或复制方式的时候,pax 包含那些路径名不能完全使用可移植字符集中除了 NULL 之外的成员表示的每个链接的链接扩展头记录。

mtime

以下文件的文件修改时间,等于文件的 stat 结构的 st_mtime 成员的值。该记录覆盖了以下头块的 mtime 字段。如果进程有相应的特权,那么修改时间会恢复。

path

下列文件的路径名。该记录覆盖了以下头块中的 name 和 prefix 字段。 pax 将文件的路径名从 UTF8 编码转换为适合本地文件系统的字符集。在使用于写或复制方式的时候,pax 包含那些路径名不能完全使用可移植字符集中除了 NULL 之外的成员表示的每个文件的路径扩展头记录。

realtime.any

以 realtime 为前缀的关键字保留用作未来的 POSIX 实时标准化。pax 能识别但暗中忽略它们。

security.any

以 security 为前缀的关键字保留用作未来的 POSIX 安全标准化。 pax 能识别但暗中忽略它们。

size

文件的八位字节大小,表示为使用来自 ISO/IEC 646 的数字的十进制数。该记录覆盖了以下头块中的 size 字段。在使用于写或复制方式的时候,pax 包含每个大于 999,999,999,999 的文件的扩展头记录的大小。

uid

拥有文件的用户的用户标识,表示为使用来自 ISO/IEC 646 的数字的十进制数。该记录覆盖了以下头块中的 uid 字段。在使用于写或复制方式的时候,pax 包含每个所有者标识大于 99,999,999 的文件的 uid 扩展头记录。

uname

以下文件的所有者,格式化为用户数据库中的用户名称。该记录覆盖了以下头块中的 uid 和 uname 字段,以及所有 uid 扩展头记录。在使用于读取、复制或列表方式的时候,pax 将头记录中名称的 UTF8 编码转换为接收系统的用户数据库适用的字符集。如果有任何一个 UTF8 字符不能转换,而且未指定 -o invalid=UTF8 选项,那么结果是不确定的。在使用于写或复制方式的时候,pax 包含每个用户名称不能完全使用可移植字符集中的字母和数字表示的文件的 uname 扩展头记录。

如果 value 字段长度为零,它删除所有头块字段、先前输入的扩展头值或相同名称的全局扩展头值。

如果扩展头记录中(或 -o 可选参数中) 的关键字覆盖或删除了 ustar 头块中的相应字段,pax 忽略头块字段的内容。

扩展头关键字优先级
(仅适用于 -x pax 格式。)

本节描述了选择应用于归档中文件的各种头记录和字段以及命令行选项的优先级。当 pax 用于读取或列表方式时,它按这个顺序决定了文件属性:

如果使用了 -o delete=keyword-prefix,若适用就从步骤(7)确定受影响的属性,否则忽略。
如果使用了 -o keyword:=NULL,忽略受影响的属性。
如果使用了 -o keyword:=value,那么将 value 值分配给受影响的属性。
如果指定文件的扩展头记录中存在 value,那么将 value 值分配给受影响的属性。在扩展头记录冲突的时候,头中最后给出的值优先。
如果使用了 -o keyword=value,那么将 value 值分配给受影响的属性。
如果在全局扩展头记录中存在 value 值,那么将它分配给受影响的属性。在全局扩展头记录冲突的时候,在全局头中最后给出的值优先。
否则,由 ustar 头块确定属性。
-p String 指定在抽取时保留或丢弃的一个或多个文件特征。 String 参数由 a、e、m、o 和 p字符构成。可以在同一个字符串中连接多个特征,指定多个 -p 标志。规范有以下的意义:
a
不保留文件访问时间。
e
保留用户标识、组标识、文件方式、访问时间和修改时间。
m
不保留文件修改时间。
o
保留用户标识和组标识。
p
保留文件方式。
如果既没有指定 -e 也没有指定 -o 标志,或者用户标识和组标识由于某些原因没有保存下来,那么 pax 命令不会设置文件方式的 S_ISUID 和 S_ISGID 位。如果任意这些项保留失败,pax 命令将诊断消息写到标准错误上。保留任意项失败会影响出口状态,但是不会导致抽取的文件被删除。如果规范标志重复或互相冲突,那么最后指定的标志优先。例如,如果指定了 -p eme,那么保留文件修改时间。

-r 从标准输入读取归档文件。
-s ReplacementString 使用 ed 命令的语法,根据替换表达式 ReplacementString,修改由 Pattern 或 File 参数指定的文件或归档成员名称。替换表达式的格式如下:
-s /old/new/[gp]

其中(类似于在 ed 命令中),old 是基本的正则表达式,而 new 可以包含 &( & 符号), \n(n 是一个数字)返回引用或子表达式匹配。 old 字符串也可以包含换行字符。

非空字符可以用作定界符(在示例中,/(反斜杠)为定界符)。可以指定多个 -s 标志表达式;表达式以指定的顺序应用,在第一次成功的替换后终止。可选的结尾 g 字符的执行与在 ed 命令中类似。可选的结尾 p 字符使得成功的替换写出到标准错误上。在读取和写归档时,忽略替换为空字符串的文件或归档成员名称。

-t 使得输入文件的访问时间与它们被 pax 命令读取之前相同。
-u 忽略旧于同名的先前存在的文件或归档成员的文件。
在抽取文件时,如果与文件系统中某文件同名的归档成员比该文件新,那么抽取该归档成员。
在向归档文件中写文件的时候,如果与文件系统中某文件同名的归档成员没有该文件新,那么该成员被取代。如果指定了 -a 标志,那么这会通过附加到归档结尾来完成。否则如果通过归档中实际替换或附加到归档来完成,就不指定。
当复制文件到目的地路径时,如果源层次结构中的文件更新,目的地层次结构中的文件就会被源层次结构中的文件或者到源层次结构中文件的链接替换。

-v 写关于进程的信息。如果 -r 和 -w 标志均未指定,-v 标志产生详细的目录;否则归档成员路径名写到标准错误。
-w 将文件以指定归档格式写到标准输出中。
-x Format 指定输出归档格式。pax 命令识别以下格式:
pax
缺省数据交换格式。特定字符归档文件的格式的缺省分块值是 10240。支持以 512 递增的从 512 到 32256 的分块值。
cpio
扩展 cpio 交换格式。特定字符归档文件的格式的缺省分块值是 5120。支持以 512 递增的从 512 到 32256 的分块值。
ustar
扩展 tar 交换格式。特定字符归档文件的格式的缺省分块值是 10240。支持以 512 递增的从 512 到 32256 的分块值。
任何试图以不同于现有的归档格式附加到归档文件都会使得 pax 命令立即以非零出口状态退出。

在复制方式下,如果未指定 -x 格式,pax 如同 -x pax 已指定一样运行。

-X 当遍历指定路径名的文件层次结构时,pax 命令不会向下遍历到拥有不同设备标识的目录中。

标志交互作用和处理顺序
对文件或归档成员名称起作用的标志(-c、-i、-n、-s、-u 和 -v)相互作用如下:

在抽取文件的时候,根据用户指定的、使用 -c、-n 和 -u 标志修改的 pattern 参数来选择归档成员。 然后,任何 -s 和 -i 标志以该顺序修改选定文件的名称。-v 标志写这些从修改产生的名称。
在向归档文件写文件或复制文件的时候,根据用户指定的、使用 -n 和 -u 标志修改的路径名称选择文件。然后,任何 -s 和 -i 标志以该顺序修改这些从改动中产生的名称。-v 标志写该修改产生的名称。
如果同时指定了 -u 和 -n 标志,那么 pax 命令不会认为文件是选定的,除非它比与其相比较的文件更新。
列表方式格式规范
在使用 -o listopt=format 选项的列表方式中,格式参数适用于每个选定的文件。pax 为每个选定的文件附加一个换行字符到 listopt 输出。格式参数用作 printf() 中描述的格式字符串,但有以下的例外:

keyword 序列可以出现在格式转换说明符之前。转换参数由 keyword 的值定义。支持以下的关键字:
ustar 和 cpio 头块的任意字段名称条目。
为扩展头定义的或在扩展头中提供为扩展名的关键字。
例如,%(charset)s 序列是扩展头中字符集名称的字符串值。

关键字转换参数的结果是来自适用的头字段或扩展头的值,不带结尾 NULL。

所有用作转换参数的“关键字-值”从 UTF8 编码转换为适合本地文件系统、用户数据库等使用的字符集。

额外的转换字符 T,指定时间格式。 T 转换字符可以 keyword=subformat 序列开头,其中subformat 是 date 命令允许的日期格式。缺省关键字是 mtime,缺省子格式是:%b %e %H:%M %Y。
额外的转换字符 M,指定文件模式字符串,正如 ls -l 命令显示的一样。如果省略了 keyword,就使用 mode。例如,%.1M 写符合 ls -l 命令的 entry type 字段的单个字符。
额外的转换字符 D 指定块文件或特殊文件的设备(如果可用的话)。如果不可用且指定了 keyword,则该转换等同于 %keyword u。如果不可用且省略了 keyword,则该转换等同于 <space>。
额外的转换字符 F,指定路径名。 F 转换字符可以逗号分隔的关键字序列开头:
keyword,keyword...

所有非空关键字的值连接在一起,每个之间以 / 分隔。如果定义了关键字路径则缺省值是 path;否则缺省值是 prefix,name。

额外的转换字符 L,指定了一个符号链接扩展。如果当前文件是符号链接,则 %L 扩展到:
『%s -> %s』, value_of_keyword, contents_of_link

否则,%L 转换字符等同于 %F。

出口状态
此命令返回以下的出口值:

0 成功完成。
>0 出现错误。

示例
为了将 olddir 目录层次结构复制到 newdir 中,请输入:

mkdir newdir
pax -rw olddir newdir要将当前目录的内容复制到磁带机上,请输入:

pax -wf /dev/rmt0要将 xxx 文件归档为 XXX,并显示成功的替换,请输入:

pax -wvf/dev/rfd0 -s /xxx/XXX/p xxx或

pax -wvf/dev/rfd0 -s/x/X/gp xxx要从标准输入读取文件并将其转储入指定大小的数据流文件,请输入:

dd if=/dev/hd6 bs=36b count=480 | pax -wf /dev/rfd0 -o
datastream=_filename_,datastr_size=_size_文件

/usr/bin/pax 包含 pax 命令。





我们匆匆相识 匆匆言爱 匆匆相许一生,
爱情也许并没有那么真的让我们那么失望,
失望只是由于我们自己的放弃。

午夜梦回。
略为清醒的时刻,
总是会想起她。
相信, 她也会想起我。
顶部
happy_py
LU幼天使
Rank: 2



UID 951
精华 3
积分 87
帖子 161
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-24
 
发表于 2003-11-11 15:58  资料  个人空间  短消息  加为好友 
save as .

顶部
 



当前时区 GMT+8, 现在时间是 2008-10-16 12:46
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.051048 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver