Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all bug

名前

       ar - 書庫の作成、変更、および書庫からのファイルの取出しを行う

書式

       ar [-]{dmpqrtx}[abcilosSuvV] [membername] archive files...

説明

       GNU  arプログラムは書庫  ( archive ) ファイルの作成、変更、および書庫からのファイルの取出しを行う。書庫は
       いくつかのファイルを集めて一つのファイルにしたもので、内部からオリジ ナルのファイルそれぞれを復元すること
       ができるようになっている。内部に含 まれるファイルを書庫の メンバー と呼ぶ。

       オリジナルのファイルの内容、モード    (許可属性)、タイムスタンプ、オーナー   およびグループも書庫に保存さ
       れ、取出しの際に再設定することができる。

       GNU  ar  では、書庫に含まれるメンバーの名前の長さに制限はない。ただし  ar  のインストール時の設定によって
       は、制限が付いている場合があるかもしれな い (他のツールで扱える書庫フォーマットとの互換性のためであること
       が多い)。 制限がある場合には、 15 文字 (a.out 関連フォーマット) または 16 文字 (coff 関連フォーマット) で
       あることが多い。

       ar  はバイナリーユーティリティ (binary utility) とされている。 なぜならこの種の書庫は汎用のサブルーチンを
       まとめた ライブラリ として用いられることが多いからである。

       ar は、書庫に入っているリロケータブルなオブジェクトモジュールに含まれるシ ンボルの索引 (index) を作成する
       ことができる。これは修正子  (modifier)  `s' が指定されたときの動作である。一度作成されると、この索引は ar
       によって書庫の内容が変更されるたびに更新される (ただし `q' によっ て書庫が更新された場合を除く)。このよう
       な索引を持った書庫では、ライブ ラリとしてリンクされる場合の速度が向上する。またライブラリの内部に含まれる
       ルーチンが、書庫内部での位置によらずお互いを呼び出すことができるように なる。

       `nm -s' または `nm --print-armap' とすればこの索引をリ ストすることができる。書庫に索引がない場合は、  ar
       の別名である ranlib を用いて索引を追加することもできる。

       ar の実行には最低 2 つの引数が必要である。一つは ar の動作 (operation) を指定する一文字の英字 (動作指定子
       :keyletter) であ り (他の英字が修正子として付随することもある)、もう一つは実際に操作の 対象となる書庫の名
       前である。

       ほとんどの動作では動作対象とするファイルを files 引数として与えることもできる。

オプション

       GNU  arでは動作指定子 p と修正子 mod の順番は任意であるが、これらはまとめて最初のコマンドライン引数に与え
       る 必要がある。

       最初のコマンドライン引数の先頭にダッシュ (-) を加えてもかまわない。

       動作指定子 p では実行する動作を指定する。これには以下のどれかを指定する。複数指定す ることはできない。

       d      書庫からモジュールを削除 ( Delete ) する。削除するモジュールの名前は files  に指定する。もし一つも
              ファイルが指定されなかった場合は、書庫に何の操作 も行わない。

              修正子として v を指定すると、 ar は削除したモジュールをそれぞれ表示する。

       m      書庫中のメンバーを移動 ( Move )する。

              一つのシンボルが書庫内部の複数のメンバーによって定義されている場合、メ  ンバーの配置の順番が異なる
              と、このライブラリへのリンクのされ方が予想と は異なる可能性がある。

              修正子による指定がなければ、 m による操作では files 引数によって指定されたメンバーを書庫の最後尾に
              移動する。移動先を 修正子 `a'、 `b'、 i によって指定することもできる。

       p      指定された書庫内部のメンバー (複数可) を標準出力に表示 ( Print ) する。 `v' 修正子が指定された場合
              には、メンバーの内容を標準出 力に表示する前にそのメンバーの名前を表示する。

              files を指定しないと、書庫の内部のすべてのファイルが表示される。

       q      files を書庫の最後に追加する。このとき置き換えのチェックを行わない (Quickappend)。

              修正子 abi はこの操作には影響しない。新しいメンバーは常に書庫の最後に配置される。

              修正子 vをつけるとar は追加する際にそれぞれのファイルを表示する。

              この操作のミソは速度なので、書庫のシンボルテーブルは更新されない (存在 していても更新されない)。シ
              ンボルテーブルを明示的に更新させるには ar s または ranlib を用いればよい。

              しかし、 quick append の際に index が再構築されるとみなしている システムがあまりにも多いので、 GNU
              ar の実装では qr と同義としている。

       r      書庫に files を挿入し、同名のファイルがあったら置換 ( Replacement )  する。この操作は  q  とは異な
              り、もとから書庫にあったメンバーのうち追加したメンバーと同名の ものはすべて削除される。

              files のリストの中に存在しないファイルがあった場合 ar はエラーを表示する。そしてそのメンバーに関し
              ては古いものを書庫にそのま ま残し、変更を行なわない。

              デフォルトでは新たなメンバーはファイルの最後に追加される。 修正子 abi を使えば、現在存在して
              いるメンバー からの相対位置として、新たなファイルを追加する位置を指定することができ る。

              この操作で修正子  v を用いると、挿入されるファイルを一行ずつ表示する。またこのとき a または r の文
              字を表示する。これはそれぞれファイルが追加 (append) された (つまり書庫には削除すべき古いメンバーが
              存在しなかった) か、置換 (replace) されたかに対応する。

       t      書庫の内容の表 ( table ) を表示する。 files が指定された場合は、files のうち書庫に存在するものを表
              示する。  通常はメンバーの名前のみが表示される。モード   (パーミッション)、タイム   スタンプ、オー
              ナー、グループ、サイズなども表示させたい場合には、リクエ ストの際に同時に修正子 v をつければ良い。

              files を指定しなければ、書庫にあるすべてのファイルがリストされる。

              同じ名前のファイル  (仮に  fie  とする) が書庫 (b.a とする) に二つ以上存在する場合には、 `ar t b.a
              fie' では最初のものしか表 示しない。すべての fie  を表示させたい場合には、書庫のファイル全てを表示
              させるように実行しなけ ればならない (この例ならば `ar t b.a' となる)。

       x      メンバーを書庫から取り出す  ( eXtract )。この操作に修正子 v を用いると、 ar は取出したファイルをそ
              れぞれ表示する。

              files を何も指定しないと、書庫のすべてのファイルが取り出される。

       いくつかの修正子 ( mod ) を動作指定子 p に続けて指定することができる。 これによって動作を調整することがで
       きる。

       a      新たなファイルを、すでに書庫に存在するメンバーの後  (  after  )  に追加する。修正子 a を用いる場合
              は、書庫にすでに存在するメンバーの名前を引数 membername として書庫名の指定の前に置かなければならな
              い。

       b      新たなファイルを、すでに書庫に存在するメンバーの前  (  before  ) に追加する。修正子 b を用いる場合
              は、書庫にすでに存在するメンバーの名前を引数 membername として、書庫名の指定の前に置かなければなら
              ない。 ( i と同じ動作をする)

       c      書庫を作成  ( create ) する。書庫を更新する操作の場合には、指定した書庫が存在しなければ、そ れは常
              に作成される。しかしこのとき警告メッセージが出る。この修正子をあ  らかじめ同時に指定しておけば、こ
              の警告を抑止することができる。

       f      書庫の中の名前を切りつめる。通常   ar   では、ファイル名には任意の長さを指定できる。しかしこのこと
              は、他のシス  テムのネイティブな  ar  プログラムと互換性のない書庫を作ってしまう原因にもなりかねな
              い。もしこ れが問題となるときは、修正子 f を用いれば書庫の中に入れるファイルの名前を切りつめること
              ができる。

       i      新しいファイルを書庫に存在するメンバーの前に挿入 (insert) する。この修 正子 i を用いる際には、書庫
              に存在しているメンバーの名前を  membername 引数として書庫の指定の前に置く必要がある。 ( b と同じ動
              作をする)

       l      この修正子はエラーにはならないが何の効力もない。

       o      書庫からメンバーを取り出すときに、元の日付を保存する (original)。 この修正子を指定しなければ、  書
              庫から取り出されたファイルのタイムスタンプは取り出し時のものになる。

       s      オブジェクトファイルの索引を書庫に書き込むか、または存在する索引を更新  する。書庫に何の変化がなく
              ても更新は行われる。この修正子はどんな操作と  も同時に用いることができるし、単独でも用いることがで
              きる。 `ar s' を書庫に対して実行するのは、 `ranlib' と等価である。

       S      書庫のシンボルテーブルを作成しない。 これは大きな書庫を構築する場合は結構な速度向上になる。 結果と
              してできた書庫は、リンカからは使うことができない。 シンボルテーブルをつくるには、 最後の段階で実行
              される arS 修正子をつけないか、あるいはそのアーカイブに ranlib を実行しなければならない。

       u      通常 ar r... はリストされたすべてのファイルを書庫に挿入する。指定したファ イルと同名のメンバーが書
              庫中にすでにあった時に、元のメンバーの方が古い  場合に限って挿入を行いたい場合には、この修正子を使
              うと良い (update)。 `u' 修正子を用いることができるのは r 操作 (replace) の場合に限られる。 qu の組
              み合わせは許されない。なぜならタイムスタンプをチェックすると `q'  操作の速度面での利点が損なわれて
              しまうからである。

       v      この修正子は饒舌  (  verbose  )  モードの動作を指定するために用いられる。  `v' 修正子が追加 される
              と、多くの操作において、より詳細な情報が表示される (例えば処理し ているファイル名など)。

       V      この修正子は ar のバージョン番号を表示する。

関連項目

       info の ` binutils ' エントリ、 The GNU Binary  Utilities,  Roland  H.  Pesch  (October  1991)、  nm(1)、
       ranlib(1)

著作権

       Copyright (c) 1991 Free Software Foundation, Inc.

       Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice
       and this permission notice are preserved on all copies.

       Permission is granted to copy and distribute modified versions of this manual under  the  conditions  for
       verbatim  copying,  provided  that  the entire resulting derived work is distributed under the terms of a
       permission notice identical to this one.

       Permission is granted to copy and distribute translations of this manual into another language, under the
       above  conditions  for  modified  versions,  except  that  this  permission  notice  may  be  included in
       translations approved by the Free Software Foundation instead of in the original English.