ar(1) | GNU 開發工具 | ar(1) |
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' 列出 這種索引, 如果 檔案 沒有這類 索引, 可以 使用 另外 一個 稱為ranlib 的ar 程式 增加 這種 索引.
ar 至少需要兩個引數才能執行: 一個指明執行的 操作 (可能伴隨有其它的 修飾符 ),作用的檔案名字。 多數 操作 可以 接受 更多的檔案 引數, 指明 操作的 詳細 檔案.
ar 允許你 在第一個 命令列 引數中 以任意 順序 混合 指定 操作碼p 和修飾符mod .
只要你 願意, 也可以 用破折號 作為 命令列 第一個 引數的 開始.
p 關鍵字 指明 要執行的 操作, 只能 指明為 如下 之一:
如果 給出了'v' 修飾符,ar 會例出 它刪除的 每一個 模組.
如果 某個 符號名 在檔案的 多個 成員中 有定義, 那麼 程式 怎樣 連線 檔案 檔案 得到的 結果 可能是 不同的.
如果 沒有為m 指定 修飾符, 由files 指出的 成員 將移動到 檔案的末尾 ; 可以 透過 `a', `b' 或 `i' 等修飾符, 指定 成員 移動的 具體 位置.
如果沒有 指明files 引數, 檔案中 所有的 成員 都會被 列印 出來.
修飾符 `a' `b' 和 `i'不 影響此 操作, 新成員 始終 追加到 檔案的 末尾處.
修飾符 `v' 可以使 ar 列出 它追加的 所有檔案.
由於 本功能 是用於 快速操作, 即使 檔案中 有 符號表 索引 也不 進行 更新; 可以 使用 `ar s' 或 ranlib 明確 要求 更新 這些索引.
在為快速 追加 重建 索引時,由於 有 太多 不同的 系統, 所以 GNU ar 採用 `q' 作為 `r'的一個 同義字.
如果 不存在 名稱為 files 的檔案, ar 顯示 一個 錯誤 訊息, 並且 保留 檔案中 已有的 同名 成員.
預設情況下, 新成員 增加到 擋案的 末尾; 可以 透過 使用 `a' `b' 或 `i' 等修飾符 指定 相對於 已有 成員的 位置.
透過 使用 `v' 修飾符 會為每個 插入的 檔案 產生 一行 輸出, 根據 輸出中的 字元 `a' 或 `r' 可以 表明 該檔案 是追加的 (沒有 刪除 以前的成員) 還是 替換的.
如果 沒有 指出 files, 檔案中的 所有 檔案 都會 列出.
如果 檔案中 (稱為 `b.a') 有多個 同名 成員 (稱為 `fie'), `ar t b.a fie' 僅僅 列出 第一個; 要看到 它們的 全部, 必須 要求 完整的 列表 —在本例中是 `ar t b.a'.
如果沒有給出 files, 抽取 檔案中 所有的 檔案.
可以在 運算子 p 後緊隨 一定數量的 修飾符 mod 以指明 操作的 各種 行為.
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@pzh-public.sc.cninfo.net>
2002/06/23
http://cmpp.linuxforum.net
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
1999 | Free Software Foundation |