pax コマンド

目的

アーカイブ・ファイルのメンバーを取り出して書き込み、リストします。ファイルおよびディレクトリー階層をコピーします。

構文

アーカイブ・ファイルのメンバー・ファイルをリストする

pax-c | -n] [-d] [-U ] [  -v] [  -H |  -L ] [-f  Archive] [  -s ReplacementString... ] [-x Format] [-o Options] [ -Z ] [Pattern... ]

-r フラグを使用してアーカイブ・ファイルを取り出す

pax -r-c  | -n ] [  -d ] [  -i ] [  -k ] [ -U ] [  -u ] [  -v ] [  -H |  -L ] [  -f Archive] [  -o Options] [  -p String... ] [  -s ReplacementString... ] [  -x Format] [ -Z ]  [Pattern ... ]

-w フラグを使用してアーカイブ・ファイルに書き込む

pax -w-d ] [  -i ] [  -t ] [ -U ] [  -u ] [  -v ] [  -X ] [  -H |   -L ] [ -E ] [  -b Blocking] [[ -a ]   -f Archive] [  -o Options] [  -s ReplacementString... ] [  -x Format] [ -Z ]File... ]

-r フラグと -w フラグを使用してファイルをコピーする

pax -r -w-d ] [  -i ] [  -k ] [  -l ] [  -t ] [ -U ] [  -u ] [  -v ] [  -X ] [  -H |   -L ] [  -p String... ] [  -o Options] [  -s ReplacementString... ] [  -x Format] [ -Z ] [File ... ] Directory

説明

pax は portable archive interchange の略です。pax コマンドは、アーカイブ・ファイルのメンバー・ファイルを取り出して書き込みます。 アーカイブ・ファイルのメンバー・ファイルのリストを書き込み、ディレクトリーの階層をコピーします。 -r フラグと -w フラグはアーカイブ操作のタイプを指定します。
注: pax は、復元されているファイルをアクティブに分散させます。NULL が入っている区域で、調整済みでサイズ指定された区域をファイルがブロックしている場合、pax によってそれらのファイルシステム・ブロック用の物理スペースが割り当てられることはありません。バイト単位でのファイルのサイズは変わりませんが、ファイルシステム内で実際に使われるスペースは NULL 以外の区域用になります。

アーカイブ・ファイルのメンバー・ファイルのリスト (リスト・モード)

-r フラグも -w フラグも指定されない場合、pax コマンドは、標準入力から読み取られたアーカイブ・ファイルのすべてのメンバー・ファイルをリストします。Pattern パラメーターを指定すると、指定したパターンに一致するパス名を持つメンバー・ファイルだけが標準出力に書き出されます。 指定されたファイルがディレクトリーの場合は、そのディレクトリーに含まれているファイル階層も取り出されます。 -r フラグも -w フラグも指定されない場合は、-c-d-f-n-s、および -v フラグと Pattern パラメーターを指定できます。

-r フラグを使用したアーカイブ・ファイルの取り出し (読み取りモード)

-r フラグは指定するが、-w フラグは指定しない場合、pax コマンドは標準入力から読んだアーカイブ・ファイルのすべてのメンバー・ファイルを取り出します。 Pattern パラメーターを指定すると、指定したパターンに一致するパス名を持つメンバー・ファイルだけが標準出力に書き出されます。 指定されたファイルがディレクトリーの場合は、そのディレクトリーに含まれているファイル階層も取り出されます。-r フラグは、-c-d-f-i-k-n-s-u-v フラグ、および Pattern パラメーターと一緒に指定できます。

取り出したファイルのアクセス時間および修正時間は、アーカイブ・ファイルの場合と同じです。 取り出したファイルのファイル・モードは、ファイルをアーカイブした場合と同じですが、ユーザーのデフォルトのファイル作成モード (umask) の影響を受けない場合に限られます。 取り出したファイルの S_ISUID ビットと S_ISGID ビットはクリアされます。

アーカイブ・メンバーを取り出すのに中間ディレクトリーが必要な場合には、pax コマンドは、S_IRWXUS_IRWXGS_IRWXO のマスクの値のビット単位の包含 OR として設定されたアクセス権を持つディレクトリーを作成します。

選択したアーカイブ・フォーマットがリンクされるファイルの指定をサポートする場合、そのアーカイブ・フォーマットが取り出されたときにそれらのファイルをリンクできないとエラーになります。

-w フラグを使用したアーカイブ・ファイルの書き込み (書き込みモード)

-w フラグを指定して -r フラグを指定しない場合、pax コマンドは、File パラメーターで指定されたファイルの内容をアーカイブ・フォーマットで標準出力に書き出します。 File パラメーターを指定しないと、コピーするファイルのリストが標準入力から 1 行に 1 つずつ読み取られます。 File パラメーターがディレクトリーを指定する場合は、そのディレクトリーに含まれるすべてのファイルが書き込まれます。-w フラグは、-a-b-d-f-i-o-s-t-u-v-x-X フラグ、および File パラメーターと一緒に指定できます。

-r フラグと -w フラグを使用したファイルのコピー (コピー・モード)

-r フラグと -w フラグをともに指定する場合、pax コマンドは、File パラメーターで指定されたファイルを Directory パラメーターで指定された出力先ディレクトリーにコピーします。ファイルを指定しないと、コピーするファイルのリストが、1 行に 1 つずつ標準入力から読み取られます。 指定されたファイルがディレクトリーの場合は、そのディレクトリーに含まれているファイル階層もコピーされます。-r フラグと -w フラグは、 -d-i-k-l-o-p-s-t-u-v-X フラグ、および File パラメーターと一緒に指定できます。 Directory パラメーターは必ず指定してくだ さい。

コピーされたファイルは、アーカイブ・ファイルに書き込まれ、その後で取り出された内容と同じですが、元のファイルとコピーされたファイルの間にハード・リンクがある点が異なります。

-o フラグを使用したアーカイブ・アルゴリズムの修正

-o フラグを使用して、キーワードと値の組に従ってアーカイブ・アルゴリズムを修正します。 キーワードと値の組は、正しいアーカイブ・フォーマットに準拠している必要があります。 有効なキーワードとその動作のリストは、後で、-o フラグの説明のところに出てきます。

その他の注意事項

読み取りモードまたはコピー・モードでは、アーカイブ・メンバーを取り出すために中間ディレクトリーが必要である場合、pax コマンドは mkdir() サブルーチンに類似したアクションを実行します。この場合、パス引数として中間ディレクトリーが使用され、モード引数として値 S_IRWXU が使用されます。

指定されたパターンまたはファイル・オペランドが少なくとも 1 つのファイルまたはアーカイブ・メンバーと一致しない場合、pax は、一致しなかったそれぞれのファイルまたはアーカイブ・メンバーごとに診断メッセージ 1 つずつを標準エラーに書き込み、エラー状況を表して終了します。

スキャン・ディレクトリーでは、pax コマンドは、最後に訪問されたファイルの祖先である、既に訪問されているディレクトリーを入力することによって、無限ループを検出します。無限ループを検出すると、pax コマンドは診断メッセージを標準エラーに書き込み、終了します。

pax コマンドが読み取りモードまたはリスト・モードのときは、-x pax アーカイブ・フォーマットを使用することにより、拡張ヘッダー・レコード内のファイル名、リンク名、所有者名、または他のフィールドを pax UTF8 コード・セット・フォーマットから現在のコード・セットとロケールに変換することはできません。 pax コマンドは、診断メッセージを標準エラーに書き込み、-o invalid= オプションで記述されている通りにファイルを処理してから、アーカイブ内の次のファイルを処理します。

AIX® 5.3 の場合、pax コマンドは、デフォルトでは拡張属性を無視します。 -U オプションは pax に、ACL を含む拡張属性をアーカイブまたは復元することを通知します。 -pe オプションは ACL を保存します。-pe オプションが指定されているときに pax が ACL を保持するのに失敗すると、診断メッセージが標準エラーに書き込まれますが、取り出されたファイルは削除されません。ゼロ以外の終了コードが返されます。 pax アーカイブ・ファイル内に、拡張属性用エントリーに新しいレコード・タイプが必要です。

変数

項目 説明
Directory ファイルをコピーするとき、出力先ディレクトリーのパスを指定します。
File コピーまたはアーカイブするファイルのパスを指定します。 File パラメーターと一致するファイルがない場合、pax コマンドは、エラーを検出して終了し、診断メッセージを書きます。
Pattern アーカイブ・メンバーの 1 つまたは複数のパスに一致するパターンを指定します。 ¥ (円記号) は、Pattern パラメーターでは識別されず、このためにその後の文字が意味を持たなくなります。Pattern パラメーターを指定しない場合、すべてのメンバーがアーカイブで選択されます。

Pattern パラメーターが指定されているが、指定されたパターンに一致するアーカイブ・メンバーが見つからない場合、pax コマンドは、エラーを検出して終了し、診断メッセージを書きます。

フラグ

項目 説明
-a アーカイブの最後にファイルを追加します。
注: ストリーミング・テープ・デバイスでは、追加機能は許可されません。
-b Blocking 出力用のブロックのサイズを指定します。 Blocking パラメーターは正の 10 進整数値を指定し、この値がブロックごとのバイト数を指定します。 POSIX2 に準拠するアプリケーションでは、32256 を超えるブロック・サイズ値を指定してはなりません。 デバイスおよびアーカイブ・フォーマットによってはブロック化が制限されることがあります。 ブロック化は、入力時に自動的に決定されます。 アーカイブを作成する場合のデフォルト・ブロック化は、アーカイブ・フォーマットによって左右されます。(-x フラグの定義を参照。)

Blocking パラメーターは、以下のいずれかの値を受け入れます。

Integer b
バイト単位のブロック・サイズが、Integer パラメーターの値に 512 を掛けた値を指定した正の 10 進整数になるように指定します。
Integer k
バイト単位のブロック・サイズが、Integer パラメーターの値に 1024 を掛けた値を指定した正の 10 進整数になるように指定します。
Integer m
バイト単位のブロック・サイズが、Integer パラメーターの値に 1024 x 1024 を掛けた値を指定した正の 10 進整数になるように指定します。
Integer+Integer
バイト単位のブロック・サイズが、Integer パラメーターで指定した正の 10 進整数の合計になるように指定します。
-c Pattern パラメーターで指定されたファイルを除く、すべてのファイル・メンバーまたはアーカイブ・メンバーを突き合わせます。
-d コピー、アーカイブ、または取り出しが行われるディレクトリーが、ディレクトリーの内容ではなく、ディレクトリーに一致するようにします。
-E 新規のアーカイブまたは既存のアーカイブにファイルが追加される際に、 長いユーザー名およびグループ名が切り捨てられないようにします。
-f Archive 標準入力 (-w フラグを指定しない場合) または標準出力 (-w フラグは指定するが -r フラグは指定しない場合) の代わりに使用するアーカイブ・ファイルのパスを指定します。 -a フラグのオプションと一緒に指定すると、アーカイブに書き込まれるすべてのファイルがアーカイブの最後に追加されます。
-H ディレクトリーを参照するシンボリック・リンクがコマンド・ラインに指定されている場合、pax は、リンクの名前をファイル階層の名前として使用して、そのリンク内で参照されているディレクトリー内にルートがあるファイル階層をアーカイブします。デフォルトでは、pax は、シンボリック・リンクそのものをアーカイブします。
-i ファイルまたはアーカイブの名前を対話型で変更します。 Pattern パラメーターに一致するそれぞれのアーカイブ・メンバー、または File パラメーターに一致するファイルについては、ファイルまたはアーカイブ・メンバーの名前を含むディスプレイ・デバイスにプロンプトが表示されます。 そこで、1 行がディスプレイ・デバイスから読み取られます。 この行が空である場合には、ファイルまたはアーカイブ・メンバーはスキップされます。 この行が単一のピリオドで構成されている場合、その名前を修正せずにファイルまたはアーカイブ・メンバーが処理されます。 そうでない場合には、その名前がその行の内容に置換されます。
-k pax コマンドが既存ファイルに書き込むのを防ぎます。
-l ファイルをコピーするときに、ファイルをリンクします。 可能な場合にはいつでも、ソース・ファイルと出力先ファイルの階層間にハード・リンクが設けられます。
-L ディレクトリーを参照するシンボリック・リンクがコマンド・ラインに指定されたか、ファイル階層のスキャン中に検出された場合、pax は、リンクの名前をファイル階層の名前として使用して、そのリンク内で参照されているディレクトリー内にルートがあるファイル階層をアーカイブします。デフォルトでは、pax は、シンボリック・リンクそのものをアーカイブします。
-n それぞれの Pattern パラメーターに一致する最初のアーカイブ・メンバーを選択します。 それぞれのパターンについて、複数のアーカイブ・メンバーが一致することはありません。
-oOptions Options パラメーターとして指定したキーワードと値の組に従って、アーカイブ・アルゴリズムを変更します。 キーワードと値の組は以下のフォーマットでなくてはなりません。

keyword:=value,keyword:=value,...

キーワードによっては、それぞれの説明で示されているように、特定のファイル・フォーマットにだけ適用されるものがあります。 処理されているファイル・フォーマットに適用できないキーワードを使用しても、pax によって無視されます。

キーワードの前にはホワイト・スペースを設けることができます。 value フィールドは、ゼロ桁以上の文字で構成されます。value の中では、リテラル・コンマの前には円記号 (¥) を付ける必要があります。最後の文字としてのコンマや、最後の文字としてホワイト・スペースが後に付いているコンマは、Options 内では無視されます。-o オプションは複数指定できます。 複数の -o オプションに指定したキーワードが矛盾する場合は、コマンド・ライン・シーケンス内で後の方に出てくるキーワードと値が優先されます。それより前の値は無視されます。

次のキーワードと値の組は、示されたファイル形式の場合にサポートされます。

datastream=pathname,datastr_size=size (すべてのファイル形式に適用されます。)

datastream キーワードは、着信アーカイブ・ファイルがファイル・フォーマットではなく、標準入力デバイスからのデータ・ストリームであることを示します。したがって、データは -x フラグで認識されるフォーマットの正規ファイルとしてアーカイブしなくてはなりません。データ・ストリームのファイル名は、pathname パラメーターで指定される必要があり、コマンドを起動した人の ID、グループ ID、ファイル・モードの umask が含まれている必要があります。

注: datastream キーワードには、デフォルトの変数サイズがありません。変数サイズを指定しなくてはなりません。

datastr_size キーワードは、データ・ストリーム入力のサイズ (バイト単位) を 10 進数で示します。pax コマンドは、size パラメーターを読む前にファイル終わり (EOF) に達すると、アーカイブ・ファイルを null 値で埋めます。 null 値の場合、アーカイブ・ファイルのサイズは size パラメーターで指定したものと同じになります。 アーカイブ・ファイル内のデータが指定したサイズを超えると、pax コマンドは size パラメーターで指定されたサイズになるようにアーカイブ・ファイルを切り捨てます。また、pax コマンドは入力の取り出しを停止してアーカイブ・ファイルをクローズします。

注: キーワードの組については複数のインスタンスを指定できます。同じキーワードに異なる値を割り当てると、pax コマンドはそのキーワードに最後に割り当てた値を使用して -o フラグを実行します。

delete=pattern (-x pax フォーマットのみに適用されます。)

pax は、書き込みモードまたはコピー・モードで使用される場合、それが作成する拡張ヘッダー・レコードからの pattern とマッチングするキーワードをすべて省略します。 読み取りモードまたはリスト・モードで使用される場合、pax は、その拡張ヘッダー・レコード内の pattern とマッチングするキーワードをすべて無視します。 いずれの場合も、マッチングは、標準シェル・パターン・マッチング表記を使用して行われます。 例えば、-o delete=security.* は、セキュリティー関連情報を抑止します。

項目 説明
-o Options (続き)

 

exthdr.name=string (-x pax フォーマットのみに適用されます。)

このキーワードによって、ユーザーが、拡張ヘッダー・レコード の ustar ヘッダー・ブロック内に書き込まれる名前を制御できます。 この名前は、次の文字置換が行われた後の string の内容です。

string に組み込む内容:
置換後の内容:
%d
ファイルのディレクトリー名。変換されたパス名上の dirname ユーティリティーの結果と同じ。
%f
ファイルのファイル名。変換されたパス名上の basename ユーティリティーの結果と同じ。
%%
%% 文字

string 内で上記以外の % 文字を使用すると、未定義の結果が生じます。 このキーワードと値の組が -o Options リストで指定されていない場合、その名前のデフォルト値は次のようになります。

%d/PaxHeaders/%f

globexthdr.name=string (-x pax フォーマットのみに適用されます。)

pax は、該当のオプションを指定した書き込みモードまたはコピー・モードで使用されると、以前のバージョンの pax によって正規ファイルとして扱われる、ustar ヘッダー・ブロックを含んだグローバル拡張ヘッダー・レコードを作成します。 このキーワードによって、ユーザーが、グローバル拡張ヘッダー・レコードの ustar ヘッダー・ブロック内に書き込まれる名前を制御できます。 この名前は、次の文字置換が行われた後の string の内容です。

string に組み込む内容:
置換後の内容:
%n
1 で始まる、アーカイブ内のグローバル拡張ヘッダー・レコードのシーケンス番号を表す整数。
%%
% 文字

string 内で上記以外の % 文字を使用すると、未定義の結果が生じます。 このキーワードと値の組が -o Options リストで指定されていない場合、その名前のデフォルト値は次のようになります。

$TMPDIR/GlobalHead.%n

ここで、$TMPDIRTMPDIR 環境変数の値、または TMPDIR が設定されていない場合は /tmp です。

invalid=action (-x pax フォーマットのみに適用されます。)

このキーワードによって、ユーザーが、次の状態の拡張ヘッダー・レコード内で値を検出したときに pax が取るアクションを制御できます。

  • 読み取りモードまたはコピー・コードの場合に、宛先階層内で無効である。
  • リスト・モードの場合に、コード・セットと現行ロケール内に書き込むことができない。
項目 説明
-o Options (続き)

pax は次の無効値を認識します。

  • 読み取りモードまたはコピー・モードの場合に、宛先階層で無効な文字エンコードを含むファイル名またはリンク名。(例えば、この名前には組み込み NULL が含まれている場合があります。)
  • 読み取りモードまたはコピー・モードの場合に、出力先階層で可能な最大長を超えるファイル名またはリンク名 (パス名のコンポーネントか、パス名全体のどちらかの場合)。
  • リスト・モードの場合に、コード・セットおよび現行ロケールに書き込むことができない文字列値 (ファイル名、リンク名、ユーザー名など)。

次に示す、action 引数の相互排他的な値がサポートされています。

  • bypass

    読み取りモードまたはコピー・モードの場合、pax はファイルをバイパスして、それにより出力先階層への変更は行われません。 リスト・モードの場合、pax は、そのファイルについて要求された有効値をすべて書き込みますが、無効値を書き込むためのメソッドは指定されていません。

  • rename

    読み取りモードまたはコピー・モードの場合、pax は、無効なファイル名またはリンク名を持つ各ファイルごとに -i フラグが有効であるものとした働きをして、ユーザーが対話式に置換名を指定できるようにします。リスト・モードでは、paxbypass アクションとまったく同じ動作をします。

  • UTF8

    読み取り、コピー、またはリスト・モードで使用される場合に、拡張ヘッダー・レコード内のファイル名、リンク名、オーナー名などのフィールドがすべて、pax UTF8 コード・セット形式から現行コード・セットおよびロケールに変換できない場合、pax はその名前に実際の UTF8 エンコードを使用します。

  • write

    読み取りモードまたはコピー・モードの場合、pax は、ファイルを書き込んで、名前の変換または切り捨てを行います。これは、有効名を持つ既存ファイルが上書きされるかどうかに関係なく行われます。 リスト・モードでは、paxbypass アクションとまったく同じ動作をします。

    -o invalid=action が指定されない場合、pax は、bypass アクションが指定されたときと同様の働きをします。 -o invalid=actions で認められている既存ファイルの上書きは、許可 (-p) と変更時間 (-u) の制限の対象となり、-k フラグも指定されている場合は抑止されます。

linkdata (-x pax フォーマットのみに適用されます。)

書き込みモードでは、ファイルが、アーカイブに内容が書き込まれているファイルへのハード・リンクであっても、pax コマンドは、そのファイルの内容をアーカイブに書き込みます。

項目 説明
-o Options (続き)

listopt=format (すべてのファイル形式に適用されます。)

このキーワードは、-v オプションがリスト・モードで指定されているときに生成される目次の出力形式を指定します。 このキーワードと値の組は、混同されないように、-o フラグ以降の唯一または最後のキーワードと値の組として使用しなければなりません。オプションと引数の組の残りの部分にある文字はすべて、フォーマット文字列の一部として見なされます。複数の -o listopt=format オプションを指定すると、フォーマット文字列 は 1 つの連結された文字列と見なされ、コマンド・ラインの順序で評価されます。 詳細は、リスト・モード・フォーマットの仕様のセクションを参照してください。

times (-x pax フォーマットのみに適用されます。)

pax は、書き込みモードまたはコピー・モードで使用される場合、各ファイルごとに atime、ctime、および mtime 拡張ヘッダー・レコードを組み込みます。

拡張ヘッダー・キーワード

(-x pax フォーマットのみに適用されます。)

-x pax フォーマットを指定すると、下記のリストで定義されているキーワードと値は、次の 2 つのモードのどちらかで -o フラグへのパラメーターとして使用できます。

keyword=value

書き込みモードまたはコピー・モードで使用される場合、これらのキーワードと値の組は、新しいアーカイブのグローバル拡張ヘッダー・レコードに書き込まれます。 読み取りモードまたはリスト・モードで使用される場合、これらのキーワードと値の組は、読み取られるアーカイブのグローバル拡張ヘッダー・レコード内にそれらの組がある場合と同様の働きをします。どちらの場合も、その値は、指定されたキーワードの個々の拡張ヘッダー・レコード内で値が割り当てられていない、すべてのファイルに適用されます。

keyword:=value

書き込みモードまたはコピー・モードで使用される場合、これらのキーワードと値の組は、新しいアーカイブの各ファイルの拡張ヘッダー・レコードに書き込まれます。 読み取りモードまたはリスト・モードで使用される場合、これらのキーワードと値の組は、読み取られるアーカイブの各ファイルの拡張ヘッダー・レコード内にそれらの組がある場合と同様の働きをします。どちらの場合も、その値は、グローバルまたはファイル特定の拡張ヘッダー・レコードにある指定のキーワードの値をすべてオーバーライドします。

atime

後に続くファイル (1 つまたは複数) のファイル・アクセス時間。ファイルの stat 構造体の st_atime メンバーの値と同じ。

charset

後に続くファイルのデータをエンコードするために設定される文字セットの名前。 このテーブルのエントリーは、既知の標準を参照するために定義されます。

標準
"ISO-IR 646 1990" ISO/IEC 646 IRV
"ISO-IR 8859 1 1987" ISO 8859-1
"ISO-IR 8859 2 1987" ISO 8859-2
"ISO-IR 10646 1993" ISO/IEC 10646
"ISO-IR 10646 1993 UTF8" ISO/IEC 10646, UTF8 encoding
"BINARY" なし

エンコードは、通知だけを目的として拡張ヘッダーに組み込まれています。 pax は、説明に従って使用すると、ファイル・データを他のどのエンコードにも変換しません。 BINARY エントリーは、エンコードされていないバイナリー・データを示します。

comment

コメントとして使用する一連の文字。pax は値フィールド内の文字をすべて無視します。

ctime

以下のファイルのファイル作成時間。ファイルの stat 構造体の st_ctime メンバーの値と同じ。

gid

ファイルを所有するグループのグループ ID。10 進数で表わす。このレコードは、後に続くヘッダー・ブロック (1 つまたは複数) 内の gid フィールドをオーバーライドします。 pax は、書き込みモードまたはコピー・モードで使用されると、グループ ID が 99,999,999 を超えるファイルごとに、gid 拡張ヘッダー・レコードを 1 つずつ組み込みます。

gname

グループ・データベース内でグループ名としてフォーマットされている、後に続くファイル (1 つまたは複数) のグループ。 このレコードは、後に続くヘッダー・ブロックの gid フィールドと gname フィールド、および gid 拡張ヘッダー・レコードをオーバーライドします。 読み取り、コピー、またはリスト・モードで使用されると、pax は、ヘッダー・レコードの UTF8 エンコードからの名前を、受信システム上のグループ・データベースに適した文字セットに変換します。 いずれかの UTF8 文字が変換できない場合に、-o invalid=UTF8 オプションが指定されていないと、未定義の結果が生じます。 pax は、書き込みモードまたはコピー・モードで使用されると、グループ名がポータブル文字セットの文字と数字だけで表すことができないファイルごとに、gname 拡張ヘッダー・レコードを 1 つずつ組み込みます。

変更の始めhdrcharset変更の終わり

拡張ヘッダー・レコード gnamelinkpathpath、および uname の値フィールドをエンコードするために使用される文字セットの名前。 次の表にあるエントリーは、既知の標準を参照するために定義されています。 発信元と受信側の間で追加の名前が合意される場合があります。
標準
ISO-IR106462000UTF-8 ISO/IEC 10646、UTF-8 エンコード
BINARY なし
hdrcharset 拡張ヘッダーレコードが指定されていない場合は、拡張ヘッダーレコード内の値をすべてエンコードするためにデフォルト文字セット (ISO/IEC 10646-1:2000 標準 UTF-8 エンコード) が使用されます。

BINARY エントリーは、影響を受けたファイルの拡張ヘッダーに記録されるすべての値が、基本のシステムからの未エンコード・バイナリー・データであることを示しています。

linkpath

前にアーカイブされた別のファイル (タイプを問わず) に対して作成されるリンクのパス名。このレコードは、後に続く ustar ヘッダー・ブロック (1 つまたは複数) の linkname フィールドをオーバーライドします。

後に続く ustar ヘッダー・ブロックが、作成されるリンクのタイプ (ハードまたはシンボリック) を決定します。 後者の場合、リンク・パス値が、そのシンボリック・リンクの内容になります。 pax は、リンクの名前 (シンボリック・リンクの内容) を、UTF8 エンコードからローカル・ファイルシステムに適した文字セットに変換します。

書き込みモードまたはコピー・モードで使用される場合、pax は、パス名全体を NULL 以外のポータブル文字セットのメンバーで表すことができない各リンクのリンク・パス拡張ヘッダー・レコードを組み込みます。

mtime

後に続くファイル (1 つまたは複数) のファイル修正時間。ファイルの stat 構造体の st_mtime メンバーの値と同じ。 このレコードは、後に続くヘッダー・ブロック (1 つまたは複数) の mtime フィールドをオーバーライドします。 変更時間は、そのプロセスに、復元するために適切な特権があれば復元されます。

path

後に続くファイル (1 つまたは複数) のパス名。 このレコードは、後に続くヘッダー・ブロック (1 つまたは複数) の name フィールドと prefix フィールドをオーバーライドします。 pax は、ファイルのパス名を、UTF8 エンコードからローカル・ファイルシステムに適した文字セットに変換します。 pax は、書き込みモードまたはコピー・モードで使用されると、パス名を NULL 以外のポータブル文字セットのメンバーだけで表すことができないファイルごとに、path 拡張ヘッダー・レコードを 1 つずつ組み込みます。

realtime.any

real time が接頭部として付いたキーワードは、将来の POSIX リアルタイム標準化のために予約されます。pax はそれらを認識しますが、何もせずに無視します。

security.any

security が接頭部として付いたキーワードは、将来の POSIX セキュリティー標準化のために予約されます。pax はそれらを認識しますが、何もせずに無視します。

size

オクテット単位でのファイルのサイズ。ISO/IEC 646 からの数字を使用する 10 進数で表されます。 このレコードは、後に続くヘッダー・ブロック (1 つまたは複数) の size フィールドをオーバーライドします。 pax は、書き込みモードまたはコピー・モードで使用されると、サイズ値が 999,999,999,999 を超えるファイルごとに、拡張ヘッダー・レコードのサイズを組み込みます。

uid

ファイルを所有するユーザーのユーザー ID。ISO/IEC 646 からの数字を使用する 10 進数で表されます。 このレコードは、後に続くヘッダー・ブロック (1 つまたは複数) の uid フィールドをオーバーライドします。 pax は、書き込みモードまたはコピー・モードで使用されると、オーナー ID が 99,999,999 を超えるファイルごとに、uid 拡張ヘッダー・レコードを 1 つずつ組み込みます。

uname

ユーザー・データベース内のユーザー名としてフォーマットされている、後に続くファイル (1 つまたは複数) のオーナー。 このレコードは、後に続くヘッダー・ブロックの uid フィールドと uname フィールド、および uid 拡張ヘッダー・レコードをオーバーライドします。 読み取り、コピー、またはリスト・モードで使用されると、pax は、ヘッダー・レコード内の UTF8 エンコードからの名前を、受信システム上のデータベースに適した文字セットに変換します。 いずれかの UTF8 文字が変換できない場合に、-o invalid=UTF8 オプションが指定されていないと、未定義の結果が生じます。 pax は、書き込みモードまたはコピー・モードで使用されると、ユーザー名がポータブル文字セットの文字と数字だけで表すことができないファイルごとに、uname 拡張ヘッダー・レコードを 1 つずつ組み込みます。

value フィールドの長さがゼロの場合、ヘッダー・ブロック・フィールド、以前に入力された拡張ヘッダー値、または同じ名前のグローバル拡張ヘッダー値のどれかが削除されます。

拡張ヘッダー・レコード (または -o オプションと引数の組の中) のキーワードが、ustar ヘッダー・ブロック内の対応するフィールドをオーバーライドまたは削除 すると、pax はそのヘッダー・ブロック・フィールドの内容を無視します。

拡張ヘッダー・キーワードの優先度

(-x pax フォーマットのみに適用されます。)

このセクションでは、さまざまなヘッダー・レコードとファイル、およびコマンド・ライン・オプションを、アーカイブ内のファイルに適用するように選択する場合の優先度について説明します。 pax は、読み取りモードまたはリスト・モードで使用すると、次のシーケンスでファイル属性を判別します。

  1. -o delete=keyword-prefix が使用される場合、影響を受ける属性は、ステップ (7) が適用可能であればこのステップから判別されます。使用されない場合は無視されます。
  2. -o keyword:=NULL が使用される場合、影響を受ける属性は無視されます。
  3. -o keyword:=value が使用される場合、影響を受ける属性には値が割り当てられます。
  4. ファイル特定の拡張ヘッダー・レコードに value が存在する場合、影響を受ける属性には値が割り当てられます。 拡張ヘッダー・レコード同士が競合する場合、ヘッダー内で最後に指定されたものが優先されます。
  5. -o keyword=value が使用される場合、影響を受ける属性には値が割り当てられます。
  6. グローバル拡張ヘッダー・レコードに値が存在する場合、影響を受ける属性には値が割り当てられます。 グローバル拡張ヘッダー・レコード同士が競合する場合、グローバル・ヘッダー内で最後に指定されたものが優先されます。
  7. 上記以外の場合、属性は、ustar ヘッダー・ブロックから判別されます。
項目 説明
-p String 取り出すときに保存するかまたは破棄する 1 つまたは複数のファイル特性を指定します。 String パラメーターは、文字 aemop で構成されます。 同一文字列内で複数の特性を組み合わせることができ、複数の -p フラグを指定できます。指定フラグには、以下のような意味があります。
a
ファイル・アクセス時間を保存しない
e

ユーザー ID、グループ ID、ファイル・モード、アクセス時間、変更時間、および ACL を保存する

m
ファイル変更時間を保存しない
o
ユーザー ID とグループ ID を保存する
p
ファイル・モードを保存する

-e フラグも -o フラグも指定しない場合、またはユーザー ID とグループ ID がいずれの理由でも保存されない場合、pax コマンドは、ファイル・モードの S_ISUID ビットと S_ISGID ビットを設定しません。 これらの項目のいずれかの保存が失敗すると、pax コマンドは診断メッセージを標準エラーに書きます。 項目のいずれかの保存に失敗すると、終了状況に影響を及ぼしますが、取り出されたファイルが削除されることはありません。 指定されたフラグが重複するか互いに矛盾する場合は、最後に指定されたフラグが優先されます。 例えば、-p eme が指定されると、ファイル変更時間が保存されます。

-r 標準入力からアーカイブ・ファイルを読み取ります。
-s ReplacementString ed コマンドの構文を使い、置換式 ReplacementString に従って、Pattern パラメーターまたは File パラメーターで指定したファイル・メンバーやアーカイブ・メンバーの名前を変更します。 置換式は、以下のようなフォーマットになります。

-s /old/new/[gp]

ここで (ed コマンドの場合と同様に)、old は基本正規表現であり、new には & (アンパーサンド)、¥n (n は数値) 逆参照、または副次式のマッチングを入れることができます。old 文字列には改行文字も入れることができます。

すべての非 null 文字を区切り文字として使用できます (例では / (円記号) が区切り文字です)。複数の -s フラグ式を指定できます。この式は、指定した順序で適用され、最初に成功した置換で終わります。 オプションのフッター g 文字は ed コマンドの場合と同様に機能します。オプションのフッター p 文字を使用すると、成功した置換が標準エラーに書き込まれます。空文字列と置換されるファイルまたはアーカイブ・メンバー名は、アーカイブの読み取りおよび書き込み時には無視されます。

-t 入力ファイルのアクセス時間を、pax コマンドによって読まれる以前と同じ時間にします。
-U ACL および拡張属性のアーカイブと抽出を行います。 属性にはアクセス制御リスト (ACL) も含まれます。 ACL タイプがターゲット ・ファイルシステムでサポートされない 場合は、ターゲット ・ファイルシステムでサポートされる ACL タイプに 変換されます。EA (拡張属性) がファイルシステムでサポートされない場合は、EA はコピーされません。 アーカイブのメンバーをリストする場合、このオプションは、名前付き拡張属性があればその名前と、 各ファイルに関連する ACL でアーカイブ・イメージの一部であるものがあればそのタイプを、リストします。
-u 同じ名前を持つ既存のファイルまたはアーカイブ・メンバーより古いファイルを無視します。
  • ファイルを取り出すときは、アーカイブ・メンバーがファイルより新しいものであれば、ファイルシステムにあるファイルと同じ名前のアーカイブ・メンバーが取り出されます。
  • ファイルをアーカイブ・ファイルに書き込むときは、ファイルがアーカイブ・メンバーより新しいものであれば、ファイルシステムにあるファイルと同じ名前のアーカイブ・メンバーが取り替えられます。 -a フラグを指定した場合、これは、アーカイブに付加されることによって行われます。 このフラグが指定されていない場合、アーカイブ内で実際に取り替えられるか、 アーカイブに付加されるかは、未定です。
  • ファイルを出力先ディレクトリーにコピーするときは、ソース階層内のファイルの方が新しければ、出力先階層のファイルがソース階層のファイルによって、あるいはソース階層のファイルとのリンクによって、置き換えられます。
-v プロセスに関する情報を書き込みます。 -r フラグも -w フラグも指定しない場合は、-v フラグが詳細な目次を作成します。そうでなければ、アーカイブ・メンバー・パス名が標準エラーに書き込まれます。
-w 指定されたアーカイブ・フォーマットで標準出力へファイルを書き込みます。
-x Format ustar であるデフォルト・フォーマットを使って、出力アーカイブ・フォーマットを指定します。pax コマンドは、以下のフォーマットを認識します。
pax
pax 交換フォーマット。文字特殊アーカイブ・ファイル用のこのフォーマットのデフォルト・ブロック化値は 10240 です。 512 から 32256 まで、512 刻みでブロック化値がサポートされます。
cpio
拡張 cpio 交換フォーマット。 文字特殊アーカイブ・ファイル用のこのフォーマットのデフォルト・ブロック化値は 5120 です。512 から 32256 まで、512 刻みでブロック化値がサポートされます。
ustar
拡張 tar ファイルを圧縮する交換フォーマット。 文字特殊アーカイブ・ファイル用のこのフォーマットのデフォルト・ブロック化値は 10240 です。 512 から 32256 ま で、512 刻みでブロック化値がサポートされます。
  • Filename: pax コマンドは、システムによって定義された PATH_MAX 制限に達するまでのパスとファイル名の長さをサポートします。パスとファイル名の入力の長さが PATH_MAX 制限を超えると、値はアーカイブされません。
  • gid または uid: pax コマンドは、UINTMAX 制限に達するまでの gid と uid の値をサポートします。UINTMAX 制限より大きな値は切り捨てられます。

既存のアーカイブ・フォーマットとは異なるフォーマットでアーカイブ・ファイルを追加しようとすると、pax コマンドは、ゼロ以外の終了状況ですぐに終了します。

コピー・モードでは、-x フォーマットが無指定 の場合、pax-x pax が指定された場合と同様の働きをします。

-X パス名で指定したファイル階層を移動するとき、pax コマンドは異なるデバイス ID を持つディレクトリーへ降りることはありません。
-Z 暗号化ファイルまたはディレクトリーの暗号化ファイルシステム (EFS) 情報をアーカイブします。 EFS 情報はデフォルトで抽出されます。 アーカイブのメンバーがリストされると、-Z フラグを指定してアーカイブされた暗号化ファイルおよびディレクトリーについて、ファイル・モードの後に -e 標識が表示され、それ以外のファイルについてはハイフン (-) が表示されます。
注: -Z フラグで作成されたアーカイブは、AIX 6.1 またはそれ以降でのみ復元できます。

フラグの相互作用および処理順序

ファイルまたはアーカイブ・メンバーの名前で動作するフラグ (-c-i-n-s-u、および -v) は、以下のように相互作用します。

  • ファイルを取り出す場合、アーカイブ・メンバー は、-c-n-u フラグで変更されたユーザー指定の pattern パラメーターに従って選択されます。 次に、-s および -i フラグは、その順序で、選択されたファイルの名前を変更します。 -v フラグは、それらの変更の結果作成された名前を書き込みます。
  • ファイルをアーカイブ・ファイルに書き込む場合、またはファイルをコピーする場合は、-n フラグ (コピー・モードの場合はこのオプションは無効) と -u フラグで変更されたユーザー指定のパス名に従って、ファイルが選択されます。次に、-s および -i フラグは、その順序で、それらの変更の結果作成された名前を変更します。 -v フラグは、その変更の結果作成された名前を書き込みます。
  • -u フラグと -n フラグの両方を指定すると、pax コマンドは、 選択したファイルがそれを比較するファイルより新しくない限り、そのファイルを選択されたものと見なしません。

リスト・モード・フォーマットの仕様

-o listopt=format オプションを指定したリスト・モードでは、 フォーマット引数は、選択された各ファイルごとに適用されます。 pax は、選択された各ファイルごとに listopt 出力に改行文字を追加します。 フォーマット引数は、printf() で説明されたフォーマット文字列として使用されますが、次の例外があります。

  1. シーケンス keyword は、フォーマット変換指定子の前に置くことができます。 変換引数は、keyword の値によって定義されます。 サポートされるキーワードは次のとおりです。
    • ustar および cpio ヘッダー・ブロックの任意のフィールド名エントリー。
    • 拡張ヘッダーに定義された任意のキーワード、または拡張ヘッダー内の拡張として提供された任意のキーワード。

    例えば、シーケンス %(charset)s は、拡張ヘッダー内の文字セットの名前の文字列値です。

    キーワード変換引数の結果は、末尾 NULL のない、適用可能ヘッダー・フィールドまたは拡張ヘッダーからの値です。

    変換引数として使用されるキーワードと値の組はすべて、UTF8 エンコードから、適用可能なローカル・ファイルシステム、ユーザー・データベースなどに適した文字セットに変換されます。

  2. 追加の変換文字 T は、時刻形式を指定します。 T 変換文字の前にはシーケンス keyword=subformat を付けることができます。この場合、subformat は、date コマンドによって許可された日付形式です。 デフォルト・キーワードは mtime で、デフォルト・サブフォーマットは %b %e %H:%M %Y です。
  3. 追加の変換文字 M は、ls -l コマンドによって表示されるファイル・モード文字列を指定します。 keyword を省略すると、mode キーワードが使用されます。 例えば、%.1M は、ls -l コマンドの entry type フィールドに対応する 1 文字を書き込みます。
  4. 追加の変換文字 D は、ブロックまたはスペシャル・ファイルが適用可能であれば、そのデバイスを指定します。 これが適用可能でない場合に keyword を指定すると、この変換は %keyword u と同じになります。適用可能でない場合に keyword を指定しないなら、この変換は <スペース> と同じになります。
  5. 追加の変換文字 F は、パス名を指定します。 F 変換文字の前には、コンマで区切られたキーワードのシーケンスを付けることができます。

    keyword,keyword...

    null でない全キーワードの値は連結され、それぞれが / で区切られます。 デフォルトは、キーワード・パスが定義されている場合は path です。 それ以外の場合、デフォルトは prefix,name です。

  6. 追加の変換文字 L は、シンボリック・リンク拡張を指定します。 現在のファイルがシンボリック・リンクである場合、%L は次のように拡張されます。

    "%s -> %s", value_of_keyword, contents_of_link

    シンボリック・リンクでない場合、%L 変換文字は %F と同じです。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

セキュリティー

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権操作を実行できます。特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. olddir ディレクトリー階層を newdir にコピーするには、以下のように入力します。
    mkdir newdir
    pax -rw olddir newdir
  2. 現行ディレクトリーの内容をテープ・ドライブにコピーするには、以下のように入力します。
    pax -wf /dev/rmt0
  3. ファイル xxxXXX としてアーカイブし、正常に置き換えられたものを表示するには、以下のいずれかのコマンドを入力します。
    • pax -wvf/dev/rfd0 -s /xxx/XXX/p xxx
    • pax -wvf/dev/rfd0 -s/x/X/gp xxx
  4. 標準入力からファイルを読み、指定したサイズでデータ・ストリーム・ファイルにダンプするには、以下のように入力します。
    dd if=/dev/hd6 bs=36b count=480 | pax -wf /dev/rfd0 -o
    datastream=_filename_,datastr_size=_size_
  5. アーカイブ pax.ar の中のファイルを指定した形式でリスト表示するには、次のように入力します。
    pax -v -o listopt="start %F end" -f pax.ar
  6. pax 形式のアーカイブ pax.ar を作成するには、次のように入力します。
    pax -wf pax.ar -x pax file1
  7. pax 形式のアーカイブ pax.ar から新しいパスにファイルを抽出するには、次のように入力します。
    pax -rvf pax.ar -x pax -o path=newfilename
  8. シンボリック・リンクの内容を、ソースから宛先にコピーするには、次のように入力します。
    pax -rwL srclink destdir
  9. アーカイブからグループ名 bin のファイルを抽出するには、次のように入力します。
    pax -rvf pax.ar -x pax -o gname=bin
  10. pax 形式のアーカイブからの抽出において、パス名を無視するには、次のように入力します。
    pax -rvf pax.ar -o delete=path
  11. アーカイブの作成時に、長いユーザー名およびグループ名が切り捨てられないようにするには、 次のように入力します。
    pax -wEf file.pax file
  12. olddir ディレクトリー階層を、ファイルに関連する ACL および EA 付き で newdir にコピーするには、次のように入力します。
    mkdir newdir
    
    pax -rUw olddir newdir

ファイル

項目 説明
/usr/bin/pax pax コマンドが入っています。