Provided by: manpages-zh_1.5.2-1_all bug

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@pzh-public.sc.cninfo.net>

中文版最新更新
       2002/06/23

中國 Linux 論壇 man 手冊頁翻譯計劃
       http://cmpp.linuxforum.net