1.1 コマンドラインでのarの制御
ar [-X32_64] [-]p[mod [relpos] [count]] archive [member...]
Unix形式でarを使用するとき,arは少なくとも二つの引
数を実行時に要求します.operationを指定するキー文字
(modifiersを指定するその他のキー文字がオプションで付きます)と,
動作対象のアーカイブ名です.
ほとんどの処理は,それ以外にmember引数を受け入れ,それは処理の対
象となる特定のファイル名を指定します.
gnu arでは,最初のコマンドライン引数内で,処理コード
pと修飾フラグmodを,任意の順序で混ぜることが可能です.
好みにより,最初のコマンドライン引数をダッシュで始めてもかまいません.
pキー文字は,実行する処理を指定します.それは以下のいずれでもかま
いませんが,その中の一つだけを指定する必要があります.
- ‘d’
-
アーカイブからモジュールを削除します.削除するモジュール名は,
member...として指定してください.削除するファイルを指定してい
ない場合,アーカイブはそのままです.
‘v’修飾子を指定した場合,arは削除するそれぞれのモジュー
ルをリストアップします.
- ‘m’
-
アーカイブ内でメンバーを移動するためにこの処理を使用してください.
シンボルが一つ以上のメンバーで定義されている場合,アーカイブ内のメンバー
の順序で,ライブラリを使用してプログラムがリンクされる方法に差異が発生
するはずです.
修飾子を使用しないでm
を使用する場合,member引数で指名した
すべてのメンバーは,アーカイブの終りに移動されます.そうする代わ
りに,指定した位置にそれらを移動するために,‘a’,‘b’,または
‘i’修飾子を使用することが可能です.
- ‘p’
-
アーカイブの指定されたメンバーを標準出力ファイルに出力します.
‘v’修飾子が指定されている場合,その内容のコピーの前にメンバー名を
標準出力に表示します.
member引数を指定していない場合,アーカイブのすべてのファイルが出
力されます.
- ‘q’
-
すばやく追加します.歴史的に,ファイルmember...を
archiveの終りに,置換に関する調査をせずに追加します.
修飾子‘a’,‘b’,そして‘i’は,このオプションに効果は
ありません.新しいメンバーは常にアーカイブの終りに配置されます.
修飾子‘v’で,arは追加されるそれぞれのファイルをリストアッ
プします.
この処理の要点は速度なので,アーカイブのシンボル表の索引が存在している
場合でも更新されません.シンボル表の索引を更新するために,‘ar s’
またはranlibを明示的に使用することが可能です.
しかし,あまりに多くの様々なシステムで,高速追加が索引を再構築すること
を仮定されていので,gnu arは,q
をr
の同義語
として実装されています.
- ‘r’
-
ファイルmember...をarchiveに挿入します(置換を用
います).この処理は,追加されるものと名前が一致した場合,既存のメンバー
が削除される点で,‘q’とは異なります.
member...で指名されたファイルが一つでも存在しない場合,
arはエラーメッセージを表示し,名前がアーカイブと一致する既存
のメンバーはそのままになります.
デフォルトで,新しいメンバーはファイルの終りに追加されます.しかし,既
存のメンバーとの相対位置を要求するため,修飾子‘a’,‘b’,また
は‘i’の一つを使用してもかまいません.
この処理で修飾子‘v’を使用すると,挿入されたそれぞれのファイルを出
力の一行に書き出し,ファイルが追加された(古いメンバーが削除されていな
い)のか,置換されたのかを示す文字‘a’または‘r’のどちらかを追加
します.
- ‘t’
-
archiveの内容をリストアップしている表,または,アーカイブ
に存在するmember...にリストアップされているファイルの
表を表示します.通常,メンバー名だけが表示されます.モード(許可),
タイムスタンプ,所有者,そして大きさも見たい場合,‘v’修飾子を指定
して要求することも可能です.
memberを指定しない場合は,アーカイブ内のすべてのファイルがリスト
アップされます.
同じ名前の(‘fie’という名の)ファイルが,(‘b.a’をいう名の)アー
カイブに一つ以上ある場合,‘ar t b.a fie’は最初のインスタンスのみリ
ストアップします.すべてを見るために,完全なリストを要求する必要があり
ます — この例では‘ar t b.a’です.
- ‘x’
-
(memberという名の)メンバーをアーカイブから抽出します.
arが抽出しているそれぞれの名前をリストアップするように,この
処理で‘v’修飾子を使用することが可能です.
memberを指定しない場合,アーカイブのすべてのファイルが抽出されま
す.
処理の動作の変更を指定するため,いくつかの修飾子(mod)をpキー
文字の直後に続けてもかまいません.
- ‘a’
-
新しいファイルを,アーカイブの既存のメンバーの後に追加します.修
飾子‘a’を使用した場合,archive指定の前に,既存のアーカイブメ
ンバー名がrelpos引数にある必要があります.
- ‘b’
-
新しいファイルをアーカイブの既存のメンバーの前に加えます.修飾子
‘b’を使用した場合,archive指定の前に,既存のアーカイブメンバー
名がrelpos引数にある必要があります.(‘i’と同じです).
- ‘c’
-
アーカイブを作成します.更新の要求をしたとき,指定された
archiveが存在する場合でも,それは常に作成されます.しかし,この修
飾子を使用して,作成することを期待するということを前もって指定しない場
合,警告が生じます.
- ‘f’
-
アーカイブで名前を切り詰めます.gnu arは,通常は任意の長
さのファイル名を許可します.これは,いくつかのシステムのネイティブ
arプログラムと互換性のないアーカイブを作成します.これが懸念
される場合,アーカイブに配置するときファイル名を切り詰めるために,
‘f’修飾子を使用してもかまいません.
- ‘i’
-
新しいファイルをアーカイブの既存のメンバーの前に挿入します.修飾
子‘i’を使用する場合,archive指定の前に,既存のアーカイブメン
バー名前がrelpos引数にある必要があります.(‘b’と同じです).
- ‘l’
-
この修飾子は受け入れられますが,使用されません.
- ‘N’
-
countパラメータを使用します.これは,同じ名前のアーカイブに,複数
のエントリーがある場合に使用されます.アーカイブから,該当する名前のイ
ンスタンスをcount個,抽出または削除します.
- ‘o’
-
メンバーが既存のとき,そのオリジナルの日付を保持します.この修飾
子を指定しない場合,アーカイブから抽出されるファイルは,抽出した時間で
タイムスタンプがつきます.
- ‘P’
-
アーカイブの名前の一致にフルパス名を使用します.gnu ar
はフルパス名を持つアーカイブ(そのようなアーカイブは,POSIXで問題ない)
を作成することは不可能ですが,アーカイブを作成するものには,そうするこ
とが可能なものもあります.このオプションで,gnu arはフル
パス名を使用しているファイル名にマッチし,それは,他のツールで作成され
たアーカイブから単一のファイルを抽出するとき便利でしょう.
- ‘s’
-
他の変更がアーカイブに対してなされない場合でも,オブジェクトファイルの
索引をアーカイブに書き出したり,既存のものを更新したりします.この修飾
子フラグは,任意のオプションとともに,または単独で使用してもかまいませ
ん.アーカイブで‘ar s’を実行することは,‘ranlib’の実行と等価
です.
- ‘S’
-
アーカイブシンボル表を生成しません.これで何段階か使用する大きなライブ
ラリの構築を高速にすることが可能です.結果として出力されるアーカイブは,
リンカで使用することは不可能です.シンボルテーブルを構築するために,
‘ar’の最後の実行で‘S’修飾子を省略したり,アーカイブで
‘ranlib’を実行する必要があります.
- ‘u’
-
通常,‘ar r’...でリストアップされているすべてのファイルをアー
カイブに挿入します.リストアップしたもので,同じ名前の既存のメンバーよ
り新しいファイルのみ挿入したい場合,この修飾子を使用してください.
‘u’修飾子は,処理‘r’(置換)に対してのみ可能です.特に,タイム
スタンプの調査が処理‘q’での速度の利点を損なうため,‘qu’ と組
み合わせることはできません.
- ‘v’
-
この修飾子は,処理の冗長バージョンを要求します.多くの処理は,修
飾子‘v’が追加されているとき,処理しているファイル名のような追加の
情報を表示します.
- ‘V’
-
この修飾子はarのバージョンナンバーを表示します.
arは,AIXに対する互換性のため,‘-X32_64’と綴られた最初の
オプションを無視します.このオプションによって引き起こされる動作は,
gnu arのデフォルトです.arは,その他の
‘-X’オプションを全くサポートしません.特に,AIX arではデ
フォルトとなる-X32はサポートしません.