pax 命令

用途

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

语法

列出已归档文件的成员文件
pax-c | -n] [-d] [-U ] [  -v] [  -H |  -L ] [-f  Archive] [  -s ReplacementString... ] [-x Format] [-o Options] [ -Z ] [Pattern... ]
使用-r标志提取存档文件

pax -r [ -c  | -n ] [ -d ] [ -i ] [ -k ] [ -U ] [ -u ] [ -v ] [ -H | -L ] [ -f 归档] [ -o 选项] [  -p 字符串... ] [ -s ReplacementString... ] [ -x 格式] [ -Z ] [模式 ...]

使用-w标志写入存档文件

pax -w [ -d ] [  -i ] [ -t ] [ -U ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -E ] [  -b 分块] [[ -a ] -f 归档] [ -o 选项] [ -s ReplacementString... ] [ -x 格式] [ -Z ] [ 文件...]

使用-r和-w标记复制文件

pax -r -w [ -d ] [ -i ] [ -k ] [ -l ] [ -t ] [ -U ] [ -u ] [ -v ] [ -X ] [ -H | -L ] [ -p 字符串... ] [ -o 选项] [ -s ReplacementString... ] [ -x 格式] [ -Z ] [文件 ...] 目录

描述

帕克斯 代表可移植归档交换。 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_ISUIDS_ISGID 位。

如果需要中间目录来抽取归档成员,那么 pax 命令会创建访问许可权设置为 S_IRWXUS_IRWXGS_IRWXO 掩码的值的按位包含 OR 的目录。

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

使用-w标志(写模式)写入存档文件

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

使用-r和-w标志复制文件(复制模式)

当同时指定了 -r-w 标志时,pax 命令会将 File 参数指定的文件复制到 Directory 参数指定的目标目录。 如果没有指定文件,从标准输入读取要复制的文件列表(每行一个文件)。 如果指定的文件是目录,那么还会复制该目录中包含的文件层次结构。 -r-w 标志可以与 -d-i-k-l-o-p-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= 选项描述的方式处理文件,然后处理归档中的下一个文件。

对于AIX 5.3,"pax命令默认忽略扩展属性。 -U 选项通知 pax 归档或复原扩展属性 (包括 ACL)。 -pe 选项将保留 ACL。 指定 -pe 选项时,如果 pax 未能保留 ACL ,那么会将诊断消息写入标准错误,但不会删除抽取的文件。 将返回非零退出码。 pax 归档文件中的扩展属性条目需要新的记录类型。

变量

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

如果指定了 Pattern 参数,但找不到任何与指定模式匹配的归档成员,那么 pax 命令会检测到该错误、然后退出并编写诊断消息。

标志

表 2。 标志
描述
-a 将文追加到归档末尾。
注: 流式磁带设备不允许使用追加功能。
-b 分块 指定输出的块大小。 Blocking 参数指定一个正的十进制整数值来指定每块的字节数。 符合 POSIX2 标准的应用程序不得指定大于 32256 的块大小值。 设备和归档格式可能会对阻止施加限制。 分块在输入时自动确定。 创建归档时的缺省分块取决于归档格式。 (请参阅 -x 标志定义。)

阻止 参数接受以下其中一个值:

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

keyword:=value,keyword:=value,...

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

关键字可以空格开始。 字段由零个或多个字符组成; 在 中,任何文字逗号都必须以反斜杠 (\) 开头。 在 选项 中,将忽略逗号作为最后一个字符,或者忽略后跟空格作为最后一个字符的逗号。 可以指定多个 -o 选项。 如果向这些多个 -o 选项提供的关键字发生冲突,那么在命令行序列中较后出现的关键字和值优先。 会忽略较早的值。

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

datastream=pathnamedatastr_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 匹配的任何关键字。 在所有情况下,通过使用标准 shell 模式匹配表示法来完成匹配。 例如, -o delete=security.* 禁止与安全性相关的信息。

描述
-o Options(续)

 

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

此关键字允许用户控制写入扩展头记录的 ustar 头块的名称。 在进行以下字符替换之后,该名称是 string 的内容:

string 包括:
被替换:
%d
文件的目录名称,相当于 dirname 实用程序对变换后的路径名的结果。
%f
文件的文件名,相当于 basename 实用程序对变换后的路径名的结果。
%p
pax 进程的进程标识。
%%
% 字符。

其他任何 string 中的 % 字符产生未定义的结果。 如果在 -o 选项 列表中未将 "关键字/值" 对指定为 -o exthdr.name=string,那么 pax 将采用名称的缺省值 %d/PaxHeaders.%p/%f

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

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

string 包括:
被替换:
%n
归档中表示全局扩展头记录序列号的整数(从 1 开始)
%%
一个 % 字符

其他任何 string 中的 % 字符产生未定义的结果。 如果该“关键字/值”对未在 -o Options 列表中指定,名称的缺省值为

$TMPDIR/GlobalHead.%n

其中, $TMPDIRTMPDIR 环境变量的值,如果未设置 TMPDIR ,那么为 /tmp

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=操作 ,那么 pax 将如同指定了 bypass 操作一样工作。 -o invalid=操作 可能允许的现有文件的任何覆盖都受许可权 (-p) 和修改时间 (-u) 限制,如果还指定了 -k 标志,那么将禁止这些覆盖。

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

在写入方式下,pax 命令会将文件的内容写入归档,即使该文件是指向其内容已写入归档的文件的硬链接。

描述
-o Options(续)

listopt=format(适用于所有文件格式。)

此关键字指定在列表方式下指定了 -v 选项时会产生的目录的输出格式。 为了避免产生歧义,此“关键字/值”对必须用作跟在 -o 标志后的唯一或最终“关键字/值”对;选项参数剩余部分中的所有字符被视为是格式字符串的一部分。 如果指定了多个 -o listopt=format 选项,那么格式字符串将被视为单个并置字符串,并按命令行顺序进行求值。 请参阅 List-Mode Format Specifications 部分以获取更多信息。

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

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

扩展头关键字

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

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

关键字 = 值

在用于写或复制方式的时候,这些“关键字/值”对写到新归档中的全局扩展头记录中。 在读取或列表方式下使用时,这些“关键字/值”对就像它们存在于要读取的归档的全局扩展头记录中一样起作用。 在这两种情况下,给定的值都应用于其各自扩展头记录中没有已对指定关键字赋予的值的所有文件。

关键字:=value

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

atime

下列文件的文件访问时间等于文件的 stat 结构的 st_atime 成员的值。

字符集

将字符的名称设置为对下列文件中数据进行编码。 定义此表中的条目来参考已知的标准:

正式标准
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
SO-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

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

hdrcharset
用于对 gnamelinkpathpathuname 扩展头记录的值字段进行编码的字符集的名称。 下表中的条目被定义为引用已知的标准。 可以在发起方和收件人之间约定额外的名称。
正式标准
ISO-IR106462000UTF-8 ISO/IEC 10646 , UTF-8 编码
BINARY
如果未指定 hdrcharset 扩展头记录,那么将使用缺省字符集 (ISO/IEC 10646-1:2000 标准 UTF-8 编码) 对扩展头记录中的所有值进行编码。

BINARY 条目指示在受影响文件的扩展头中记录的所有值都是来自底层系统的未编码二进制数据。

链接路径

创建来指向先前归档的另一文件(任何类型都可)的链接的路径名。 此记录将覆盖以下 ustar 头块中的 linkname 字段。

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

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

mtime

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

path

下列文件的路径名。 该记录覆盖了以下头块中的 nameprefix 字段。 pax 会将文件的路径名从 UTF8 编码转换到适合本地文件系统的字符集。 在写入或复制方式下使用时,对于其路径名无法完全用可移植字符集中 NULL 以外的成员表示的每个文件,pax 包含其路径扩展头记录。

realtime.任何

以 real time 作为前缀的关键字为保留项,用于将来的 POSIX Real-Time 标准化。 pax 能标识但暗中忽略它们。

security.任何

以 security 作为前缀的关键字为保留项,用于将来的 POSIX Security 标准化。 pax 能标识但暗中忽略它们。

size

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

uid

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

uname

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

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

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

Extended header keyword precedence

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

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

  1. 如果使用了 -o delete=keyword-prefix,若适用就从步骤 (7) 确定受影响的属性,否则忽略。
  2. 如果使用了 -o keyword:=NULL,忽略受影响的属性。
  3. 如果使用了 -o keyword:=value,那么将 value 值分配给受影响的属性。
  4. 如果指定文件的扩展头记录中存在 value,那么将 value 值分配给受影响的属性。 在扩展头记录冲突的时候,头中最后给出的值优先。
  5. 如果使用了 -o keyword=value,那么将 value 值分配给受影响的属性。
  6. 如果在全局扩展头记录中存在 value 值,那么将它分配给受影响的属性。 在全局扩展头记录冲突的时候,在全局头中最后给出的值优先。
  7. 否则,由 ustar 头块确定属性。
描述
-p String 指定在抽取时保留或丢弃的一个或多个文件特征。 String 参数由字符 aemop组成。 可以在同一字符串中合并多个特征,并且可以指定多个 -p 标志。 规范有以下的意义:
a
不保留文件访问时间。
e

保留用户标识、组标识、文件方式、访问时间、修改时间和 ACL。

m
不保留文件修改时间。
o
保留用户标识和组标识。
p
保留文件方式。

如果既没有指定 -e 也没有指定 -o 标志,或者用户标识和组标识由于某些原因没有保存下来,那么 pax 命令不会设置文件方式的 S_ISUIDS_ISGID 位。 如果其中任何项的保留失败,那么 pax 命令会将诊断消息写入标准错误。 保留任意项失败 会影响退出状态,但是不会导致抽取的文件被除去。 如果规范标志重复或互相冲突,那么最近一次指定的标志优先。 例如,如果指定了 -p eme ,那么将保留文件修改时间。

-r 从标准输入读取归档文件。
-s ReplacementString 使用 "ed命令的语法,根据替换表达式ReplacementString,修改由模式文件参数指定的文件或归档文件名。 替换表达式的格式如下:

-s /old/new/[gp]

其中(如 ed 命令中所示),old 是基本的正则表达式,而 new 可以包含 & 符号, \nn 是数字)反向引用或者子表达式匹配。 old 字符串也可以包含换行字符。

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

-t 使得输入文件的访问时间与它们被 pax 命令读取之前相同。
-U 执行 ACL 和扩展属性的归档和抽取。 属性还包括访问控制列表 (ACL)。 如果在 Target 文件系统上不支持 ACL 类型,那么它将转换为受 Target 文件系统支持的 ACL 类型。 如果在文件系统上不支持 EA ,那么不会复制 EA。 列示归档成员时,此选项将列示任何指定的扩展属性的名称以及与作为归档映像一部分的每个文件关联的任何 ACL 的类型。
-u 忽略旧于同名的先前存在的文件或归档成员的文件。
  • 在抽取文件时,如果与文件系统中某文件同名的归档成员比该文件新,那么抽取该归档成员。
  • 在向归档文件中写文件的时候,如果与文件系统中某文件同名的归档成员没有该文件新,那么该成员被取代。 如果指定 -a 标志,那么这会通过附加到归档结尾来完成。 否则,如果通过在归档中实际替换或追加到归档来完成此操作,那么未指定此操作。
  • 当复制文件到目标路径时,如果源层次结构中的文件更新,目标层次结构中的文件就会被源层次结构中的文件或者到源层次结构中文件的链接替换。
-v 写关于进程的信息。 如果既不指定 -r 标志,也不指定 -w 标志,那么 -v 标志会产生详细目录;否则,会将归档成员路径名写到标准错误。
-w 将文件以指定归档格式写到标准输出。
-x 格式 指定缺省格式为 ustar 的输出归档格式。 pax 命令标识以下格式:
pax
pax 交换格式。 特定字符归档文件的格式的缺省分块值是 10240。 支持以 512 递增的从 512 到 32256 的分块值。
cpio
扩展 cpio 交换格式。 特定字符归档文件的格式的缺省分块值是 5120。 支持以 512 递增的从 512 到 32256 的分块值。
ustar
扩展 tar 交换格式。 特定字符归档文件的格式的缺省分块值是 10240。 支持以 512 递增的从 512 到 32256 的分块值。
  • Filename: pax 命令支持路径长度和文件名,直到达到系统定义的 PATH_MAX 限制为止。 如果路径和文件名输入的长度超过 PATH_MAX 限制,那么不会对这些值进行归档。
  • gid or uid: pax 命令支持 giduid 的值,直到达到 UINTMAX 限制为止。 会截断超过 UINTMAX 限制的值。

如果尝试使用与现有归档格式不同的格式追加归档文件,那么这会导致 pax 命令立即以非零退出状态退出。

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

-X 当遍历路径名指定的文件层次结构时,pax 命令不会向下遍历到拥有不同设备标识的目录中。
-Z 归档加密文件或目录的加密文件系统(EFS)信息。 缺省情况下,抽取 EFS 信息。 当列出 归档成员时,e 指示符将显示在使用 -Z 标志归档的加密文件和目录的文件方式之后,对于其他文件显示连字号 (-)。
注: 使用 -Z 标志创建的归档只能在 AIX 6.1 或更高发行版上复原。

标志交互和处理顺序

对文件或归档成员 (-c-i-n-s-u-v) 的名称执行操作的标志交互如下:

  • 抽取文件时,将根据用户指定的 pattern 参数 (由 -c-n-u 标志修改) 来选择归档成员。 然后,任何 -s-i 标志按该顺序修改所选文件的名称。 -v 标志写这些从修改产生的名称。
  • 在向归档文件写文件或复制文件的时候,根据用户指定的并用 -n(该选项对复制模式无效)和 -u 标志修改的路径名称来选择文件。 然后,任何 -s-i 标志按该顺序修改这些修改所产生的名称。 -v 标志写该修改产生的名称。
  • 如果同时指定了 -u-n 标志,那么 pax 命令不会考虑选择的文件,除非它比与其比较的文件更新。

列表方式格式规范

在使用 -o listopt= format 选项的列表方式中,格式参数适用于每个选定的文件。 pax 将一个换行符附加到每个所选文件的 listopt 输出。 格式参数用作 printf() 中描述的格式字符串,但有以下的例外:

  1. keyword 序列可以出现在格式转换说明符之前。 转换参数由 keyword 的值定义。 支持以下的关键字:
    • ustarcpio 头块的任意字段名称条目。
    • 为扩展头定义的或作为扩展头中的扩展提供的任何关键字。

    例如,%(charset)s 序列是扩展头中字符集名称的字符串值。

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

    所有用作转换参数的关键字值都将从 UTF8 编码转换为适合于本地文件系统和用户数据库等的字符集 (如果适用)。

  2. 额外的转换字符 T指定时间格式。 T 转换字符前面可以有序列 keyword=subformat,其中 subformatdate 命令允许的日期格式。 缺省关键字是 mtime,缺省子格式是:%b %e %H:%M %Y。
  3. 额外的转换字符 M指定 ls -l 命令所显示的文件方式字符串。 如果省略了 keyword,就使用 mode。 例如, %.1M 写入对应于 ls -l 命令的 entry type 字段的单个字符。
  4. 额外的转换字符 D指定块或特殊文件的设备 (如果适用)。 如果不适用,且指定了 keyword,那么此转换等价于 %keyword u。 如果不适用并且省略了 keyword ,那么此转换等同于 <space>
  5. 额外的转换字符 F指定路径名。 F 转换字符可以逗号分隔的关键字序列开头:

    关键字,关键字...

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

  6. 额外的转换字符 L指定符号链接扩展。 如果当前文件是符号链接,那么 %L 扩展到:

    "%s -> %s"value_of_keywordcontents_of_link

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

退出状态

本命令返回以下退出值:

表 3。 退出状态
描述
0 成功完成。
>0 发生错误。

安全性

关注 RBAC 用户
RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 要将 olddir 目录层次结构复制到 newdir 中,请输入:
    mkdir newdir
    pax -rw olddir newdir
  2. 要将当前目录的内容复制到磁带机上,请输入:
    pax -wf /dev/rmt0
  3. 要将文件 xxx 归档为 XXX 并显示成功的替换,请输入下列其中一条命令:
    • pax -wvf/dev/rfd0 -s /xxx/XXX/p xxx
    • pax -wvf/dev/rfd0 -s/x/X/gp xxx
  4. 要从标准输入读取文件并将其转储入指定大小的数据流文件,请输入:
    dd if=/dev/hd6 bs=36b count=480 | pax -wf /dev/rfd0 -o
    datastream=_filename_,datastr_size=_size_
  5. 要以指定格式列出归档 pax.ar 中的文件,请输入:
    pax -v -o listopt="start %F end" -f pax.ar
  6. 要以 pax 格式创建归档 pax.ar ,请输入:
    pax -wf pax.ar -x pax file1
  7. 要使用新路径从具有 pax 格式的归档 pax.ar 中抽取文件,请输入:
    pax -rvf pax.ar -x pax -o path=newfilename
  8. 要将来自源的符号链接的内容复制到目标位置,请输入:
    pax -rwL srclink destdir
  9. 要从组名为 bin 的归档抽取文件,请输入:
    pax -rvf pax.ar -x pax -o gname=bin
  10. 要在抽取期间忽略 pax 格式的归档中的路径名,请输入:
    pax -rvf pax.ar -o delete=path
  11. 要在创建归档过程中避免截断较长的用户和组名,请输入:
    pax -wEf file.pax file
  12. 要将 olddir 目录层次结构复制到带有与文件相关的 ACL 和 EA 的 newdir,请输入:
    mkdir newdir
    
    pax -rUw olddir newdir

文件

表 4。 文件
描述
/usr/bin/pax 包含 pax 命令。