| コマンド名称 |
ar |
最終更新日 |
2008-03-20 |
| コマンド機能 |
書庫の作成、変更、および書庫からのファイルの取出しを行う |
| 機能概要 |
書庫 ( archive ) ファイルの作成、変更、および書庫からのファイルの取出しを行う。書庫はいくつかのファイルを集めて一つのファイルにしたもので、内部からオリジナルのファイルそれぞれを復元することができるようになっている |
| コマンドの由来 |
|
| RPMパッケージ名 |
binutils |
対象バージョン |
|
| コマンド書式 |
ar [-]{dmpqrtx}[abcilosSuvV] [membername] archive 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)
修正子 a、b、i はこの操作には影響しない。新しいメンバーは常に書庫の最後に配置される
修正子 vをつけるとar は追加する際にそれぞれのファイルを表示する
この操作のミソは速度なので、書庫のシンボルテーブルは更新されない(存在していても更新されない)。シンボルテーブルを明示的に更新させるには
ar s または ranlib を用いればよい
しかし、 quick append の際に index が再構築されるとみなしているシステムがあまりにも多いので、 GNU ar の実装では q を r と同義としている
r
書庫に files を挿入し、同名のファイルがあったら置換 ( Replace-ment ) する。この操作は q とは異なり、もとから書庫にあったメンバーのうち追加したメンバーと同名のものはすべて削除される
files のリストの中に存在しないファイルがあった場合 ar はエラーを表示する。そしてそのメンバーに関しては古いものを書庫にそのまま残し、変更を行なわない
デフォルトでは新たなメンバーはファイルの最後に追加される。修正子a、 b、 i を使えば、現在存在しているメンバーからの相対位置として、新たなファイルを追加する位置を指定することができる
この操作で修正子 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
書庫からメンバーを取り出すときに、元の日付を保存する (origi-nal)。この修正子を指定しなければ、書庫から取り出されたファイルのタイムスタンプは取り出し時のものになる
s
オブジェクトファイルの索引を書庫に書き込むか、または存在する索引を更新する。書庫に何の変化がなくても更新は行われる。この修正子はどんな操作とも同時に用いることができるし、単独でも用いることができる。`ar
s' を書庫に対して実行するのは、`ranlib' と等価である
S
書庫のシンボルテーブルを作成しない。これは大きな書庫を構築する場合は結構な速度向上になる。結果としてできた書庫は、リンカからは使うことができない。シンボルテーブルをつくるには、最後の段階で実行される
ar に S 修正子をつけないか、あるいはそのアーカイブに ran-lib を実行しなければならない
u
通常 ar r... はリストされたすべてのファイルを書庫に挿入する。指定したファイルと同名のメンバーが書庫中にすでにあった時に、元のメンバーの方が古い場合に限って挿入を行いたい場合には、この修正子を使うと良い (update)。 `u' 修正子を用いることができるのは r 操作(replace) の場合に限られる。 qu の組み合わせは許されない。なぜならタイムスタンプをチェックすると `q' 操作の速度面での利点が損なわれてしまうからである
v
この修正子は饒舌 ( verbose ) モードの動作を指定するために用いられる。 `v'
修正子が追加されると、多くの操作において、より詳細な情報が表示される (例えば処理しているファイル名など)
V
この修正子は ar のバージョン番号を表示する |
| 引数 |
|
| 使用例 |
|