Update ar.md
This commit is contained in:
parent
2a1aafbe44
commit
803676bfbf
116
command/ar.md
116
command/ar.md
|
|
@ -9,43 +9,99 @@ ar
|
|||
|
||||
### 语法
|
||||
|
||||
```
|
||||
ab(选项)(参数)
|
||||
```shell
|
||||
ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files...
|
||||
Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...
|
||||
ar -M [<mri-脚本]
|
||||
```
|
||||
|
||||
### 选项
|
||||
|
||||
|
||||
```shell
|
||||
d - 从归档文件中删除文件
|
||||
m[ab] - 在归档文件中移动文件
|
||||
p - 打印在归档文件中找到的文件
|
||||
q[f] - 将文件快速追加到归档文件中
|
||||
r[ab][f][u] - 替换归档文件中已有的文件或加入新文件
|
||||
s - act as ranlib
|
||||
t - 显示归档文件的内容
|
||||
x[o] - 从归档文件中分解文件
|
||||
特定命令修饰符:
|
||||
[a] - 将文件置于 [成员名] 之后
|
||||
[b] - 将文件置于 [成员名] 之前 (于 [i] 相同)
|
||||
[D] - use zero for timestamps and uids/gids
|
||||
[U] - use actual timestamps and uids/gids (default)
|
||||
[N] - use instance [count] of name
|
||||
[f] - truncate inserted file names
|
||||
[P] - 在匹配时使用完整的路径名
|
||||
[o] - 保留原来的日期
|
||||
[u] - 只替换比当前归档内容更新的文件
|
||||
通用修饰符:
|
||||
[c] - 不在必须创建库的时候给出警告
|
||||
[s] - 创建归档索引 (cf. ranlib)
|
||||
[S] - 不要创建符号表
|
||||
[T] - 做一个压缩档案
|
||||
[v] - 输出较多信息
|
||||
[V] - 显示版本号
|
||||
@<file> - 从<file>读取选项
|
||||
--target=BFDNAME - 将目标对象格式指定为BFDNAME
|
||||
ar 允许你 在第一个 命令行 参数中 以任意 顺序 混合 指定 操作码p 和修饰符mod .
|
||||
|
||||
只要你 愿意, 也可以 用破折号 作为 命令行 第一个 参数的 开始.
|
||||
|
||||
p 关键字 指明 要执行的 操作, 只能 指明为 如下 之一:
|
||||
|
||||
d 从档案中删除 模块. 通过files 指明 要删除的 模块的 名称; 如果 没有 指出 要删除的 文件 名称, 档案不会 改变 任何
|
||||
内容.
|
||||
|
||||
如果 给出了'v' 修饰符,ar 会例出 它删除的 每一个 模块.
|
||||
|
||||
m 用此 操作 在档案中移动 成员.
|
||||
如果 某个 符号名 在档案的 多个 成员中 有定义, 那么 程序 怎样 连接 档案 文件 得到的 结果 可能是 不同的.
|
||||
如果 没有为m 指定 修饰符, 由files 指出的 成员 将移动到 档案的末尾 ; 可以 通过 `a', `b' 或 `i' 等修饰符, 指定 成员
|
||||
移动的 具体 位置.
|
||||
|
||||
p 在标准 输出上 打印 档案中 指定的 成员. 如果 给出了`v' 修饰符, 在 打印 成员 内容 之前, 先打印 成员的 名字.
|
||||
如果没有 指明files 参数, 档案中 所有的 成员 都会被 打印 出来.
|
||||
|
||||
q 快速 追加; 增加 files 到 archive 的末尾, 不进行 替换 检查.
|
||||
修饰符 `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 的版本号。
|
||||
```
|
||||
|
||||
选项参数
|
||||
|
|
|
|||
Loading…
Reference in New Issue