ar(1) FreeBSD 一般コマンドマニュアル

ar

前のページ 上に戻る 次のページ

ar




書式

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



解説

       GNU arプログラムは、アーカイブの作成、更新、および、アーカ
       イブからの抽出を行ないます。 アーカイブ とは、オリジナルの
       ファイル (アーカイブの メンバと呼びます) を復元できるよ う
       な構造で、他のファイル群の集合を保持するような一つのファイ
       ルです。

       元のファイルの内容、モード (パーミッション)、タイムスタ ン
       プ、所有者、グループの情報はアーカイブ内でも保存され、ファ
       イル抽出時には復元されます。

       GNU arでは、メンバファイルのファイル名の長さには制限はあり
       ませんが、システムの設定によっては (他のツールで管理される
       アーカイブファイルの形式との互換性のために) メンバファイル
       のファイル名の長さに制限がある場合があります。制限がある場
       合は、多くの場合 15 文字 (a.out 関連のファイル形式が 代 表
       的)  か、 16 文字 (coff 関連のファイル形式が代表的) に制限
       されます。

       この種類のアーカイブは、共有のサブルーチンを保持するライブ
       ラ リとして利用されることが多いため、ar はバイナリユーティ
       リティと考えられます。

       `s' 修飾子を指定した場合、ar はアーカイブ内のリロケータ ブ
       ルオブジェクトで定義されたシンボルのインデックスを作成しま
       す。一度作成されたインデックスは、ar がアーカイブの内容 を
       変 更するときには必ず更新されます (ただし `q' オプション指
       定時は更新されません)。このようなインデックスを持つアー カ
       イブを用いることによって、ライブラリのリンクが高速化された
       り、ライブラリ内のルーチンがアーカイブ内の配置にかか わ ら
       ず、互いを呼び出すことができるようになります。

       `nm -s' または `nm --print-armap' によって、このインデック
       ステーブルを表示することができます。もし、アーカイブにイン
       デックステーブルが含まれていない場合は、ranlibと呼ばれる、
       もう一つの形式の ar を用いてテーブルだけを追加することがで
       きます。

       ar  を実行する時は、少なくとも二つの引数を指定する必要があ
       ります。 オペレーション (動作) を指定する一つのキ ー 文 字
       と、 処理するアーカイブ名です (キー文字には修飾子 として複
       数の文字をつけることもできます)。

       ほとんどのオペレーションは、処理する個々のファイル名を指定
       するための files 引数を受け付けます。

       d      アーカイブからモジュールを削除 します。削除す る モ
              ジュール名を files として指定して下さい。ファイル名
              を指定しなければアーカイブは変更されません。

              `v' 修飾子を指定した時には、ar は削除する際にそのモ
              ジュール名を表示します。


       m      メンバをアーカイブ内で移動します。

              あ るシンボルが複数のメンバで定義されている場合は、
              アーカイブ内でのメンバの順序によって、プログラム が
              ライブラリをリンクした結果が異なることがあります。

              m に修飾子が指定されなかった場合は files 引数で指定
              したメンバはアーカイブの最後 に 移 動 さ れ ま す。
              `a'、`b'、または `i' 修飾子を指定することによって、
              修飾子に応じた場所に移動します。


       p      アーカイブ内の指定されたメンバを標準出力に出力 しま
              す。`v'  修飾子が指定されたときは、メンバの内容を出
              力する前にメンバ名を出力します。

              filesを指定しなければ、アーカイブ内のすべてのファイ
              ルが出力されます。


       q       クイックアペンド。files で指定されたファイルを、重
              複をチェックせずにアーカイブの末尾に追加します。

              `a'、`b'、`i' 修飾子はこのオペレーションには影響 し
              ま せん。新たなメンバは常にアーカイブの末尾に置かれ
              ます。

              `v' 修飾子を指定すると、ar は追加の際にそのファイル
              名を出力します。

              こ のオペレーションの特徴は動作速度ですので、たとえ
              シンボルテーブルのインデックスが存在したとして も、
              そ れを更新しません。シンボルテーブルのインデックス
              を更新するには、明示的に `ar s' か ranlib を使っ て
              下さい。

              し かしながら、多くの異なるシステムにおいてクイック
              アペンドがインデックスを再構築することが仮定され て
              いますので、GNU ar は `q' は `r' と同じ動作をするよ
              うに実装しています。


       r      files をアーカイブに挿入 (重複の際は置換) しま す。
              こ のオペレーションは`q' とは異なり、追加するファイ
              れた各ファイルに対して、ファイルが追加された (削 除
              さ れた古いメンバがない) か、置換されたかを示す `a'
              または `r' のどちらかを含んだ一行が出力されます。


       t      アーカイブ の内容、または files に列挙されたファ イ
              ル のうち、アーカイブ内に存在するものの一覧を出力し
              ます。通常はメンバ名だけを表示しますが、`v' 修飾 子
              を指定することにより、モード (パーミッション)、タイ
              ムスタンプ、所有者、グループ、サイズも表示します。

              files の指定がない場合はアーカイブ内のすべての ファ
              イルの一覧を表示します。

              あ る ア ー カ イブ (`b.a' とします) の中に同じ名前
              (`fie' とします) の複数のファイルが存在 す る 場 合
              は、`ar  t  b.a fie' は最初のファイルだけを表示しま
              す。同名のファイルをすべて見たい場合はすべての ファ
              イ ルの一覧を表示して下さい。この例では `ar t b.a')
              です。


       x      アーカイブから files で指定されたメンバを抽出 し ま
              す。  `v'   修飾子を指定すると、ar は抽出の際にその
              ファイル名を出力します。

              files の指定がない場合はアーカイブ内のすべての ファ
              イルを抽出します。



       い く つかの修飾子 (mod) をキー文字 p の直後に付けることに
       よって、オペレーションの動作を変更することができます。


       a      新しいファイルを既存のメンバの後 に追加しま す。  a
              修 飾子を用いるときは、archive 引数の前にmembername
              引数として既存のメンバ名を指定する必要があります。


       b      新しいファイルを既存のメンバの前 に追加しま す。  b
              修 飾子を用いるときは、archive 引数の前にmembername
              引数として既存のメンバの名前を指定する必要があり ま
              す。(`i'と同じ。)


       c       アーカイブを作成 します。存在しないアーカイブ を更
              新するように指定した場合、そのアーカイブは必ず作 成
              さ れますが、その際、この修飾子を指定することによっ
              て、アーカイブを作成することを明示していなけれ ば、
              警告を出力します。



       l      この修飾子は指定可能ですが、使用されません。


       N      count パラメータを使用します。アーカイブに同一名 の
              エ ントリが複数ある場合、これが使用されます。指定し
              た名前のインスタンス count を、アーカイブから抽出ま
              たは削除します。


       o      メンバを抽出する際にオリジナル の時刻を保存します。
              この修飾子を指定しないと、アーカイブから抽出され た
              ファイルのタイムスタンプは抽出時の時刻になります。


       P       アーカイブ中の名前とマッチングを取るときに、フルパ
              ス名を使用します。 ar はフルパス名のアーカイブ ( こ
              のようなアーカイブは POSIX 準拠ではありません) を作
              成できませんが、他のアーカイブ作成器は可能です。 こ
              の オプションを使用すると、 ar は完全なパス名を使用
              してファイル名のマッチングを行います。他のツール で
              作成したアーカイブから 1 個のファイルを取り出す場合
              に有用でしょう。


       s      アーカイブに他の変更がない場合でも、アーカイブに オ
              ブ ジェクトファイルのインデックスを書き込んだり、既
              存のインデックスを更新します。この修飾子はほかの オ
              ペ レーションと併用することも、単独で使用することも
              可能です。あるアーカイブに対して`ar s' を実行するこ
              と は、そのアーカイブに対して `ranlib' を実行するこ
              とと等価です。


       S      アーカイブのシンボルテーブルを作成しません。これ を
              用 いると大きなライブラリを何回かに分けて作成する際
              に時間を短縮することができます。この結果得られる ア
              ー カイブはリンカで使用することはできません。シンボ
              ルテーブルを作成するためには最後に `ar' を実行す る
              時 に  `S'   修飾子を外すか、そのアーカイブに対して
              `ranlib' を実行する必要があります。


       u      通常 ar r... は列挙されたファイルをすべてアーカイブ
              に 挿入します。この修飾子を指定すると、指定したファ
              イルが既存の同名のメンバより新しい場合のみファイ ル
              を 挿入します。 `u' 修飾子は `r'(置換) オペレーショ
              ンだけに付けることができます。特に、タイムスタン プ
              の確認は `q' オペレーションの利点である速度を低下さ
              せるので、`qu' の組み合わせは認められません。

       H. Pesch (October 1991).  nm(1), ranlib(1).



COPYING

       Copyright (c) 1991, 1992, 1993,  1995,  1998,  1999,  2000
       Free  Software  Foundation,  Inc.   This  document is dis-
       tributed under the terms of the GNU Free Documentation Li-
       cense,  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/.













































































































































































































































































































ABELNET VPSサービス