/usr/bin/ar -d [-SVv] archive file...
/usr/bin/ar -m [-abiSVv] [posname] archive file...
/usr/bin/ar -p [-SsVv] archive [file]...
/usr/bin/ar -q [-cSVv] archive file...
/usr/bin/ar -r [-abciuSVv] [posname] archive file...
/usr/bin/ar -t [-SsVv] archive [file]...
/usr/bin/ar -x [-CSsTVv] archive [file]...
/usr/xpg4/bin/ar -d [-SVv] archive file...
/usr/xpg4/bin/ar -m [-abiSVv] [posname] archive file...
/usr/xpg4/bin/ar -p [-SsVv] archive [file]...
/usr/xpg4/bin/ar -q [-cSVv] archive file...
/usr/xpg4/bin/ar -r [-abciuSVv] [posname] archive file...
/usr/xpg4/bin/ar -t [-SsVv] archive [file]...
/usr/xpg4/bin/ar -x [-CSsTVv] archive [file]...
ar 实用程序维护已组合成单个归档文件的文件组。它的主要用途是创建和更新库文件。但是,它可以用于任何类似的用途。ar 使用的魔力字符串和文件头包含可显示的 ASCII 字符。如果归档由可显示文件组成,则整个归档都可显示。
当 ar 创建归档时,它使用可以跨所有计算机进行移植的格式来创建标头。可移植的归档格式和结构将在 ar.h(3HEAD) 中详细介绍。该处介绍的归档符号表供链接编辑器 ld(1) 使用,以便以高效的方式多次遍历目标文件库。仅在归档中至少存在一个目标文件时,ar 才会创建和维护归档符号表。归档符号表位于一个专门指定的文件中,该文件总是归档中的第一个文件。该文件决不会向用户显示或供用户访问。每当使用 ar 命令创建或更新此类归档的内容时,符号表即会重建。下面介绍的 –s 选项强制符号表重建。
支持以下选项:
将新的 file 放置在 archive 中,使其位于 posname 操作数指定的文件之后。
将新的 file 放置在 archive 中,使其位于 posname 操作数指定的文件之前。
禁止显示创建 archive 时缺省写入标准错误的诊断消息。
阻止提取的文件替换文件系统中名称相同的文件。当同时使用 –T 选项阻止截断文件名替换具有相同前缀的文件时,该选项很有用。
从 archive 中删除一个或多个 file。
将新的 file 放置在 archive 中,使其位于 posname 操作数指定的文件之前。该选项等效于 –b。
移动 file。如果同时指定了 –a、–b 或 –i 与 posname 操作数,则 –m 选项将 file 移到新的位置。否则,–m 将 file 移到 archive 的末尾。
将 archive 中 file 的内容显示在标准输出中。如果未指定 file,则会按照归档的顺序将 archive 中所有文件的内容写入标准输出。
快速将 file 附加到 archive 的末尾。定位选项 –a、–b 和 –i 无效。该命令不检查添加的 file 是否已存在于 archive 中。此选项有助于在逐块创建大型归档时避免二次行为。
在 archive 中替换或添加 file。如果 archive 不存在,则会创建新的归档文件并将诊断消息写入标准错误,除非指定了 –c 选项。如果未指定 file 并且 archive 存在,则结果不确定。替换现有文件的文件不会改变归档的顺序。如果同时使用 –u 选项和 –r 选项,则仅替换那些修改日期晚于归档文件的文件。如果使用 –a、–b 或 –i 选项,则 posname 参数必须存在并指定新的文件是放在 posname 之后 (–a) 还是之前(–b 或 –i)。否则,新的文件将放在末尾。
即使未通过将修改归档内容的选项调用 ar,也强制重新生成归档符号表。在对归档使用 strip(1) 命令之后恢复归档符号表时,此命令非常有用。
当构建归档符号表时,强制使用具备 64 位功能的符号表格式。缺省情况下,将 32 位格式用于所有小于 4GB 的归档,将较大的格式用于超过 32 位限制的较大归档。
显示 archive 的目录。file 操作数指定的文件包括在写入列表中。如果未指定 file 操作数,则会按照归档的顺序将 archive 中的所有文件包括在内。
允许截断其归档名超过文件系统可支持长度的提取文件的文件名。缺省情况下,提取名称过长的文件会发生错误。在该情况下,会写入诊断消息并取消文件的提取。
更新较早的文件。当使用 –r 选项时,archive 中的文件仅在对应 file 的修改时间晚于或等于 archive 中文件的修改时间时才会替换。
提供详细输出。当配合 –d、–r 或 –x 选项使用时,–v 选项逐个文件编写归档创建、成员 file 和维护活动的详细描述。当配合 –p 使用时,–v 首先将文件名写入标准输出,然后再将文件本身写入标准输出。当配合 –t 使用时,–v 包括归档中文件的相关信息的较长列表。当配合 –x 使用时,–v 在每个提取之前显示文件名。当写入归档时,–v 将消息写入标准错误。
在标准错误上显示其版本编号。
/usr/xpg4/bin/ar 支持以下选项:
与 /usr/bin/ar 版本一样,除了在写入归档时,不会将消息写入标准错误。
从 archive 提取由 file 操作数指定的文件。archive 的内容不会发生更改。如果未指定 file 操作数,则会提取 archive 中的所有文件。如果从 archive 提取的文件的文件名超过要将其提取到的目录中支持的长度,则结果不确定。每个提取的 file 的修改时间设置为从 archive 提取 file 的时间。
支持下列操作数:
归档文件的路径名。
路径名。当针对归档中的文件名进行比较时,仅使用最后一个组件。如果两个或多个 file 操作数具有相同的最后路径名组件(请参见 basename(1)),则结果不确定。实现的归档格式不会截断归档中添加或替换的文件的有效文件名。
归档文件中的文件名,用于相对定位。请参见选项 –m 和 –r。
有关影响 ar 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、LC_TIME 和 NLSPATH。
确定覆盖临时文件缺省目录的路径名(如果有)。
确定用于计算 ar –tv 写入的日期和时间字符串的时区。如果 TZ 未设置或为空,则使用不确定的缺省时区。
将返回以下退出值:
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
|
basename(1)、cpio(1)、elffile(1)、file(1)、ld(1)、lorder(1)、strip(1)、tar(1)、ar.h(3HEAD)、a.out(4)、attributes(5)、environ(5)、standards(5)
如果在参数列表中相同的文件指定了两次,则可以将其放入归档两次。
按照惯例,归档使用 ".a" 作为后缀。
当将 ELF 目标文件插入归档文件时,ar 可能会添加 \n 字符来填充这些目标文件,使其成为 8 字节边界。此类填充可以提高 ld(1) 访问归档的效率。仅 ELF 目标文件按照这种方式进行填充。其他归档成员不会发生更改。当从归档提取具有此类填充的目标文件时,填充不会包括在生成的输出中。
从头开始创建新的归档比通过单独调用 ar 将各个文件插入现有归档要快。如果可以,建议的策略是删除现有归档,然后通过单次 ar 调用重新创建归档。
归档的总大小允许超过 4GB。但是,归档中任何单个文件的大小由归档文件格式限制为 4GB。请参见 ar.h(3HEAD)。
归档中单个文件的最大用户 ID 和组 ID 由归档文件格式限制为 6 个十进制数字。用户或组 ID 大于 999999 的任何文件都会自动设置为用户 ID “nobody” (60001) 或组 ID “nobody” (6001)。请参见 ar.h(3HEAD)。