ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- 移植可能なアーカイブまたはライブラリの保守
/usr/bin/ar -d [-SVv] archive file...
/usr/bin/ar -m [-abiSVv] [posname] archive file...
/usr/bin/ar -p [-SsVv] archive [file]...
/usr/bin/ar -q [-cSVv] archive file...
/usr/bin/ar -r [-abciuSVv] [posname] archive file...
/usr/bin/ar -t [-SsVv] archive [file]...
/usr/bin/ar -x [-CSsTVv] archive [file]...
/usr/xpg4/bin/ar -d [-SVv] archive file...
/usr/xpg4/bin/ar -m [-abiSVv] [posname] archive file...
/usr/xpg4/bin/ar -p [-SsVv] archive [file]...
/usr/xpg4/bin/ar -q [-cSVv] archive file...
/usr/xpg4/bin/ar -r [-abciuSVv] [posname] archive file...
/usr/xpg4/bin/ar -t [-SsVv] archive [file]...
/usr/xpg4/bin/ar -x [-CSsTVv] archive [file]...
ar ユーティリティーは、1 つのアーカイブファイルとして結合されたファイル群の保守を実行します。このコマンドは、おもにライブラリファイルの 作成および更新のために使用されますが、他の似たような目的で使うこともできます。ar が使用するマジック文字列とファイルヘッダーは、印刷可能な ASCII 文字で構成されます。アーカイブが印刷可能なファイルの集まりであれば、アーカイブ全体も印刷可能です。
ar はアーカイブを作成する際に、すべてのマシン間で移植できるような形式でヘッダーを生成します。移植可能なアーカイブの形式や構造については、ar.h(3HEAD) で詳しく説明されています。アーカイブシンボルテーブル (ar.h(3HEAD) で説明) は、リンクエディタ ld(1) がオブジェクトファイルのライブラリ群にまたがった複数の受け渡しを効率よく有効にするために使用します。アーカイブシンボルテーブルは、アーカイブ中にオブジェクトファイルが 1 つでも 存在している場合にだけ、ar により作成または保守されます。アーカイブシンボルテーブルは、特殊な名前が付けられたファイル内にあり、そのファイルは常にアーカイブの先頭にあります。このファイルに関してはユーザーに対しては表示されず、ユーザーがアクセスすることはできません。ar を使ってアーカイブを生成または更新するたびに、シンボルテーブルは再構築されます。また後述する -s オプションを使えば、シンボルテーブルを強制的に再構築することができます。
次のオプションを指定できます。
file が示す新たなファイルを、archive が示すアーカイブ中の posname が示すファイルの後に配置します。
file が示す新たなファイルを、archive が示すアーカイブ中の posname が示すファイルの前に配置します。
デフォルトでは、archive で示すアーカイブが生成されるときに標準エラー出力に診断メッセージが書き込まれますが、このオプションはそのメッセージ出力を抑制します。
抽出されたファイルが、ファイルシステム中の同一名のファイルを 置き換えないようにします。特に -T オプションも指定した場合にはファイル名の後半が切り捨てられてしまうので、この C オプションにより前半部分が一致するファイルを置き換えてしまうことを防げます。
file が示すファイルを archive が示すアーカイブから削除します。
file が示す新たなファイルを、archive が示すアーカイブ中の posname が示すファイルの前に配置します。このオプションは、-b と同じ意味を持ちます。
file が示すファイルを移動します。-a、-b、または -i オプションが posname とともに指定されていればそれに従い、-そうでない場合は、archive が示すアーカイブの末尾に移動します。-
archive が示すアーカイブ中の、file が示すファイルの内容を標準出力に印刷します。file が 1 つも指定されていなければ、そのアーカイブ中のすべてのファイルの内容が、アーカイブ内でのファイルの順序に従って出力されます。
file が示すファイルを、archive が示すアーカイブの最後尾に追加します。位置を指定するオプション -a、-b、および -i はいずれも無効です。指定されたファイルと同じ名前のファイルがすでにそのアーカイブ中に存在しているかどうかは、チェックされません。このオプションを使えば二次的な動作を抑止できるので、大きなアーカイブを少しずつ作成していく場合に便利です。
archive が示すアーカイブ中で、file が示すファイルの置換または追加を行います。指定したアーカイブが存在していなければ、新たにアーカイブを作成し (-c オプション指定時を除く) 診断メッセージを標準エラー出力に書き出します。アーカイブは存在していて、ファイル名が 1 つも指定されなかった場合の実行結果は定義されていません。ファイルの置換が発生しても、アーカイブ中でのファイルの順序は変わりません。この -r オプションとともに -u オプションも指定されていると、最終更新日時がアーカイブ中の対応するファイルより新しいファイルだけが置き換えられます。-a、-b、または -i オプションが指定された場合、posname 引数の指定も必須となります。このとき、新規ファイルは -posname で示すファイルの後 (-a) または前 (-b または i ) に置かれます。それ以外の場合、新規ファイルはアーカイブの最後尾に置かれます。
ar を呼び出したコマンドに、アーカイブの内容を更新するようなオプションが指定されていない場合でも、アーカイブのシンボルテーブルを強制的に再構築します。このオプションは、アーカイブ上で strip(1) コマンドを実行した後でアーカイブシンボルテーブルの内容を復元するのに便利です。
アーカイブシンボルテーブルの作成時に、64 ビット対応のシンボルテーブル形式の使用を強制します。デフォルトでは、4G バイト未満のすべてのアーカイブに 32 ビット形式が使用されます。32 ビットの制限を超える、より大きなアーカイブには 64 ビット形式が使用されます。
アーカイブの内容を示す目次を生成します。file で指定したファイルが目次に含まれます。file を 1 つも指定しないと、アーカイブ中の全ファイル名が、アーカイブ中での順番に含まれます。
抽出されたファイルのアーカイブ名の長さが、ファイルシステムでサポートする最大長を超えている場合、超過した部分を切り捨てます。デフォルトでは、最大長を超える長さの名前を持つファイルを抽出しようとするとエラーとなり、ファイルの抽出は行われず診断メッセージが出力されます。
古いファイルを更新します。-r オプションと一緒に指定すると、最終更新日時が archive 中の対応するファイルよりも新しいファイルについてだけ、置換が行われます。
詳細な情報を出力します。他のオプション -d、-r、または -x も一緒に指定すると、アーカイブやファイルの生成と保守作業についてファイルごとの詳細な情報を出力します。--p オプションも一緒に指定すると、ファイルの内容の前にファイルの名前を標準出力に書き出します。--t オプションも一緒に指定すると、アーカイブ中のファイルに関する大量の情報が出力されます。--x オプションも一緒に指定すると、抽出作業の前にファイル名が出力されます。-アーカイブに書き込むと、メッセージを標準エラーに書き出します。-
自身のバージョン番号を標準エラー出力に印刷します。
次のオプションは、/usr/xpg4/bin/ar でサポートされています。
アーカイブに書き込んだ場合 (メッセージを標準エラーに書き出しません) を除いて、/usr/bin/ar 版と同じです。
file で指定したファイル群を archive が示すアーカイブから抽出します。アーカイブの内容は変わりません。file を 1 つも指定しないと、アーカイブ中の全ファイルが抽出されます。抽出されたファイルの名前が、出力先のディレクトリが サポートしている最大長を超えている場合、結果は定義されていません。抽出されたファイルの最終更新時刻は、アーカイブから抽出された時刻に設定されます。
次のオペランドがサポートされています。
アーカイブのパス名。
パス名。アーカイブ中のファイル名と比較する際には、ファイル名の最終コンポーネントだけが使用されます。最終パス名コンポーネント (basename(1) を参照) に同一の名前が複数指定された場合、その結果は不確定です。アーカイブに追加または置換されたファイルの名前は、それが正当なものであれば、実装先システムのアーカイブの形式により切り捨てられることはありません。
アーカイブ中での配置位置を相対的に表すためのファイルの名前。詳しくは -m と -r オプションの説明を参照してください。
ar の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、LC_TIME、および NLSPATH。
一時ファイルが存在する場合にデフォルトのディレクトリにオーバーライドするパス名を調べます。
ar -tv により書き込まれる日時文字列の計算に使用されるタイムゾーンを調べます。TZ が指定されていない、または NULL の場合は、デフォルトのタイムゾーンが使用されます。
次の終了値が返されます。
正常終了。
エラーが発生した。
属性についての詳細は、attributes(5) を参照してください。
|
|
basename(1), cpio(1), elffile(1), file(1), ld(1), lorder(1), strip(1), tar(1), ar.h(3HEAD), a.out(4), attributes(5), environ(5), standards(5)
引数リスト中に同じファイル名を 2 度記述すると、アーカイブ中にそのファイルが 2 個置かれます。
慣習として、アーカイブのファイル名には .a という接尾辞を付けるのが一般的です。
アーカイブファイルに ELF オブジェクトを挿入する場合、ar では、これらのオブジェクトを 8 バイト境界にパディングするために「\n」文字が追加されることがあります。このようなパディングによって、ld(1) がこのアーカイブにより効率的にアクセスできるようになります。この方法でパディングが行われるのは、ELF オブジェクトファイルだけです。その他のアーカイブメンバーは変更されません。この種のパディングが行われたオブジェクトをアーカイブから抽出するとき、生成される出力にパディングは含まれません。
ar を個別に呼び出して個々のファイルを既存のアーカイブに挿入するよりも、新しいアーカイブを最初から作成する方が時間を短縮できます。可能であれば、既存のアーカイブを削除し、ar を 1 回呼び出してアーカイブを再作成することをお勧めします。
1 つのアーカイブ全体のサイズは、4G バイトを超えてもかまいません。ただし、アーカイブ内の個々のファイルのサイズはすべて、アーカイブファイル形式によって 4G バイトに制限されています。ar.h(3HEAD) を参照してください。
アーカイブ内の個々のファイルの最大のユーザー ID とグループ ID は、アーカイブファイル形式によって 6 桁の 10 進数に制限されています。999999 より大きいユーザーまたはグループ ID を持つファイルはすべて、暗黙のうちにユーザー ID「nobody」(60001) またはグループ ID「nobody」(6001) に設定されます。ar.h(3HEAD) を参照してください。