Manpages

NAME

ar - 建 立 , 修 改 档 案 或 从 档 案 中 抽 取 成 员 。

总 览

ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files...

描 述

GNU 组 织 的 ar 程 序 用 于 建 立 , 修 改 档 案 或 从 档 案 中 抽 取 成 员 。 一 个 档 案 是 一 个 包 含 了 很 多 其 它 文 件 的 单 独 的 文 件 , 它 采 用 的 结 构 使 得 可 以 很 容 易 恢 复 原 来 独 立 的 文 件 ( 称 为 档 案 的 成 员 ) 。 原 始 文 件 ( 成 员 ) 的 内 容 、 权 限 、 时 间 属 性 、 属 主 和 组 都 在 档 案 中 得 到 保 留 , 在 抽 取 时 可 以 得 到 恢 复 。

ar 程 序 维 护 的 档 案 成 员 可 以 拥 有 一 定 长 度 的 名 字 ; 具 体 情 况 , 与 你 系 统 上 的 ar 是 怎 样 配 置 的 有 关 。 为 了 与 其 它 工 具 维 护 的 档 案 格 式 兼 容 , 有 可 能 对 成 员 名 字 的 长 度 有 严 格 的 限 制 , 如 果 确 实 是 这 样 , 通 常 要 求 采 用 15 个 字 符 ( 典 型 的 格 式 是 a.out) , 或 者 16 个 字 符 ( 典 型 的 格 式 是 coff) 。

ar 是 一 个 二 进 制 格 式 的 工 具 , 因 为 这 一 类 档 案 多 数 都 作 为 保 存 公 共 程 序 的 库 文 件 使 用 。 通 过 指 定 修 饰 符 ’s’, ar 可 以 建 立 指 向 档 案 中 可 重 定 位 目 标 模 块 定 义 的 符 号 表 的 索 引 , 一 旦 建 立 , 在 ar 更 新 其 内 容 时 (通 过 ’q’ 执 行 更 新 操 作 ) , 此 索 引 也 会 得 到 更 新 . 有 这 种 索 引 的 档 案 可 以 加 速 到 库 文 件 的 连 接 过 程 , 并 且 允 许 库 中 的 例 程 相 互 调 用 而 无 须 考 虑 它 们 在 档 案 中 的 位 置 . 可 以 使 用 ’nm -s’ 或 ’nm --print-armap’ 列 出 这 种 索 引 , 如 果 档 案 没 有 这 类 索 引 , 可 以 使 用 另 外 一 个 称 为 ranlibar 程 序 增 加 这 种 索 引 .

ar 至 少 需 要 两 个 参 数 才 能 运 行 : 一 个 指 明 执 行 的 操 作 ( 可 能 伴 随 有 其 它 的 修 饰 符 ) , 作 用 的 档 案 名 字 。 多 数 操 作 可 以 接 受 更 多 的 文 件 参 数 , 指 明 操 作 的 详 细 文 件 .

选 项

ar 允 许 你 在 第 一 个 命 令 行 参 数 中 以 任 意 顺 序 混 合 指 定 操 作 码 p 和 修 饰 符 mod . 只 要 你 愿 意 , 也 可 以 用 破 折 号 作 为 命 令 行 第 一 个 参 数 的 开 始 .

p 关 键 字 指 明 要 执 行 的 操 作 , 只 能 指 明 为 如 下 之 一 :

d 从 档 案 中 删 除 模 块

. 通 过 files 指 明 要 删 除 的 模 块 的 名 称 ; 如 果 没

有 指 出 要 删 除 的 文 件 名 称 , 档 案 不 会 改 变 任 何 内 容 . 如 果 给 出 了 ’v’ 修 饰 符 ,ar 会 例 出 它 删 除 的 每 一 个 模 块 .

m 用 此 操 作 在 档 案 中 移 动 成 员

.

如 果 某 个 符 号 名 在 档 案 的 多 个 成 员 中 有 定 义 , 那 么 程 序 怎 样 连 接 档 案 文 件 得 到 的 结 果 可 能 是 不 同 的 . 如 果 没 有 为 m 指 定 修 饰 符 , 由 files 指 出 的 成 员 将 移 动 到 档 案 的 末 尾 ; 可 以 通 过 ’a’, ’b’ 或 ’i’ 等 修 饰 符 , 指 定 成 员 移 动 的 具 体 位 置 .

p 在 标 准 输 出 上 打 印 档 案 中 指 定 的 成 员

. 如 果 给 出 了 ’v’ 修 饰 符 ,

在 打 印 成 员 内 容 之 前 , 先 打 印 成 员 的 名 字 . 如 果 没 有 指 明 files 参 数 , 档 案 中 所 有 的 成 员 都 会 被 打 印 出 来 .

q 快 速 追 加 ; 增 加

filesarchive 的 末 尾 , 不 进 行 替 换 检 查 .

修 饰 符 ’a’ ’b’ 和 ’i 影 响 此 操 作 , 新 成 员 始 终 追 加 到 档 案 的 末 尾 处 . 修 饰 符 ’v’ 可 以 使 ar 列 出 它 追 加 的 所 有 文 件 . 由 于 本 功 能 是 用 于 快 速 操 作 , 即 使 档 案 中 有 符 号 表 索 引 也 不 进 行 更 新 ; 可 以 使 用 ’ar s’ 或 ranlib 明 确 要 求 更 新 这 些 索 引 . 在 为 快 速 追 加 重 建 索 引 时 ,由 于 有 太 多 不 同 的 系 统 , 所 以 GNU ar 采 用 ’q’ 作 为 ’r’的 一 个 同 义 字 .

r 把 文 件

files 插 入 archive ( 替 换 ). 本 操 作 与 ’q’ 是 不 同 的 , 如 果

档 案 中 已 有 的 某 个 成 员 与 插 入 文 件 的 名 称 相 同 , 此 成 员 将 被 删 除 . 如 果 不 存 在 名 称 为 files 的 文 件 , ar 显 示 一 个 错 误 消 息 , 并 且 保 留 档 案 中 已 有 的 同 名 成 员 . 缺 省 情 况 下 , 新 成 员 增 加 到 挡 案 的 末 尾 ; 可 以 通 过 使 用 ’a’ ’b’ 或 ’i’ 等 修 饰 符 指 定 相 对 于 已 有 成 员 的 位 置 . 通 过 使 用 ’v’ 修 饰 符 会 为 每 个 插 入 的 文 件 产 生 一 行 输 出 , 根 据 输 出 中 的 字 符 ’a’ 或 ’r’ 可 以 表 明 该 文 件 是 追 加 的 (没 有 删 除 以 前 的 成 员 ) 还 是 替 换 的 .

t 显 示 一 个

archive 档 案 所 包 含 内 容 的 列 表 , 或 档 案 中 的 由 files

指 出 的 文 件 列 表 . 通 常 只 显 示 成 员 的 名 称 , 如 果 使 用 ’v’ 修 饰 符 , 可 以 得 到 成 员 的 权 限 , 时 间 属 性 , 属 主 , 组 和 大 小 . 如 果 没 有 指 出 files, 档 案 中 的 所 有 文 件 都 会 列 出 . 如 果 档 案 中 (称 为 ’b.a’) 有 多 个 同 名 成 员 (称 为 ’fie’), ’ar t b.a fie’ 仅 仅 列 出 第 一 个 ; 要 看 到 它 们 的 全 部 , 必 须 要 求 完 整 的 列 表 —在 本 例 中 是 ’ar t b.a’.

x 从 档 案 中 抽 取 成 员

(名 称 为 files) . 如 果 使 用 ’v’ 修 饰 符 , ar

会 列 出 它 抽 取 的 每 一 个 文 件 的 名 字 . 如 果 没 有 给 出 files, 抽 取 档 案 中 所 有 的 文 件 . 可 以 在 操 作 符 p 后 紧 随 一 定 数 量 的 修 饰 符 mod 以 指 明 操 作 的 各 种 行 为 .

a 增 加 文 件 到 档 案 中 已 有 成 员 之 后 , 如 果 使 用 了 修 饰 符

a, 必 须

在 档 案 名 称 archive 之 前 以 membername 参 数 的 形 式 给 出 档 案 中 已 有 成 员 的 名 字 .

b 增 加 文 件 到 档 案 中 已 有 成 员 之 前 , 如 果 使 用 了 修 饰 符

b, 必 须

在 档 案 名 称 archive 之 前 以 membername 参 数 的 形 式 给 出 档 案 中 已 有 成 员 的 名 字 . (和 修 饰 符 ’i’ 相 同 ).

c 建 立 档 案

. 指 定 的 档 案 archive 始 终 会 被 建 立 , 如 果 你 要 求 执 行

的 是 更 新 , 通 过 此 修 饰 符 建 立 档 案 时 会 给 出 一 个 警 告 .

f 截 短 档 案 成 员 的 名 字

. ar 通 常 允 许 任 意 长 度 的 文 件 名 , 但 这 会

导 致 与 某 些 系 统 上 的 ar 出 现 兼 容 性 问 题 , 使 用 f 修 饰 符 可 以 在 往 档 案 中 追 加 文 件 时 把 名 字 截 短 .

i 插 入 文 件 到 档 案 中 已 有 成 员 之 前 , 如 果 使 用 了 修 饰 符

i, 必 须

在 档 案 名 称 archive 之 前 以 membername 参 数 的 形 式 给 出 档 案 中 已 有 成 员 的 名 字 . (与 修 饰 符 ’b’ 相 同 ).

l 接 受 此 修 饰 符 , 但 不 起 作 用

.

N 使 用

count 参 数 . 本 修 饰 符 用 于 在 档 案 中 有 多 个 同 名 成 员 的 情 况 . 删 除 或 抽 取 档 案 中 给 定 名 字 的 第 count 个 实 例 .

o 抽 取 成 员 时 保 留 他 们 原 始 的 时 间 属 性

. 如 果 没 有 此 修 饰 符 , 文 件

以 抽 取 的 时 间 作 为 它 的 时 间 属 性 .

P 匹 配 档 案 中 的 名 字 时 使 用 完 整 的 路 径 名

. ar 不 能 建 立 使 用 完 整

路 径 名 的 档 案 (这 不 符 合 POSIX 标 准 ), 但 其 它 的 档 案 工 具 能 够 建 立 , 本 选 项 会 使 ar 在 抽 取 由 其 它 工 具 建 立 的 档 案 文 件 时 , 使 用 完 整 的 路 径 名 去 匹 配 档 案 中 成 员 的 名 字 .

s 即 使 没 有 对 档 案 进 行 改 变 , 用 本 修 饰 符 也 可 以 往 档 案 中 写 一 个 目 标 文 件 的 索 引 或 更 新 已 经 存 在 的 索 引

. 可 以 与 其 它 操 作 一 起 使 用 本 修 饰 符 , 也 可 以 单 独 使 用 . 对 一 个 档 案 执 行 ’ar s’ 与 执 行 ’ranlib’ 等 价 .

S 不 生 成 档 案 的 符 号 表

. 这 可 以 加 速 建 立 大 的 档 案 文 件 的 过 程 ,但 这

样 建 立 的 档 案 不 能 被 连 接 器 使 用 , 为 建 立 符 号 表 , 在 最 后 执 行 ’ar’ 时 应 该 不 用 ’S’ 修 饰 符 , 或 者 对 档 案 执 行 一 次 ’ranlib’ .

u 通 常

ar r... 把 所 有 列 出 的 文 件 插 入 到 档 案 中 , 如 果 希 望 仅 仅

入 比 档 案 中 已 有 成 员 更 新 的 文 件 时 , 就 应 该 使 用 此 修 饰 符 . ’u’ 修 饰 符 仅 允 许 与 ’r’ (替 换 ) 操 作 一 起 使 用 . 某 些 情 况 下 , 由 于 用 ’q’ 操 作 比 较 文 件 的 时 间 属 性 会 失 去 速 度 上 的 优 势 , 所 以 不 允 许 执 行 ’qu’ 组 合 操 作 .

v 使 用 本 修 饰 符 可 以 进 行 冗 余 的 操 作 。 附 加 了 此 修 饰 符 时 , 很 多 操 作 会 显 示 更 多 的 消 息 , 如 处 理 的 文 件 名 等 。

V 显 示

ar 的 版 本 号 。

参 考

info 中 的 ’binutils’ 条 目 ; The GNU Binary Utilities, Roland H. Pesch (1991年 10月 ). nm(1), ranlib(1).

版 权

Copyright (c) 1991, 1992, 1993, 1995, 1998, 1999, 2000 Free Software Foundation, Inc.

This document is distributed under the terms of the GNU Free Documentation License, version 1.1. That license is described in the sources for this manual page, but it is not displayed here in order to make this manual more consise. Copies of this license can also be obtained from: http://www.gnu.org/copyleft/.

中 文 版 维 护 人

Yin Huaming <yhmact [AT] pzh-public.net>

中 文 版 最 新 更 新

2002/06/23

中 国 Linux 论 坛 man 手 册 页 翻 译 计 划

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh