pax - 移植可能アーカイブを交換する

形式

pax [–cdEnvz][-H|-L][–f archive] [–o type] [-s substitute] [pattern …]

pax –r [–cdEiknquvz] [-H|-L] [–f archive] [–o options …] [–p string …] [–s substitute …] [–V volpat] [pattern …]

pax –w [–dEituvXz] [-H|-L] [-W seqparms=parms] [–b blocksize] [[–a] [–f archive]] [–o options …] [–ssubstitute …] [–V volpat] [–x format] [pathname …]

pax -r -w [-CdDEiklLMntuvX] [-H|-L][-o options …] [–p string …] [–s substitute …] [pathname …] directory

標準 UNIX フォーマット である pax 交換フォーマット (-x pax) は、 拡張 USTAR (-o saveeext) または os390 フォーマット (-x os390) が 保管するすべてのファイル属性を保管します。 また、他のフォーマットでは処理できないファイル属性、例えばサイズが 8 GB を超えるファイル、2097151 を超える uid 値と gid 値、および z/OS® 固有の属性 (ユーザーの監査フラグ、監査員の監査フラグ、ファイル・フォーマット) の保存/復元を行うことができます。pax 交換フォーマットは z/OS リリース 8 以降でサポートされています。pax 交換フォーマットのアーカイブは、それより古いシステムでも抽出できます。ただし、USTAR フォーマットで保管できない属性を持つアーカイブ済みファイルに関する情報は失われます。古い z/OS システムで抽出される可能性があるアーカイブを作成するときは、USTAR (デフォルト)、拡張 USTAR (-o saveext)、または os390 (-x os390) フォーマットを使用することをお勧めします。z/OS リリース 8 以降のシステムで抽出されるアーカイブを作成するときは、pax フォーマット (-x pax) が推奨されるフォーマットです。pax フォーマットで拡張属性を保存する方法の詳細については、-x pax オプションの項を参照してください。

説明

pax はアーカイブ・ファイルを読み取り、書き込み、またはリストし、 あるいは、ディレクトリー階層をコピーします。 アーカイブ・ファイルは、UNIX ファイル、MVS™ データ・セット、 または MVS データ・セット・メンバーのいずれでもかまいません。アーカイブの内部に格納されている ファイルはコンポーネント・ファイル と呼ばれます。 同様に、アーカイブの内部に格納されたディレクトリーを コンポーネント・ディレクトリーと呼びます。

制約事項: pax を使用している場合、以下の制約事項に注意してください。
  • pax は世代別データ・グループ (GDG) の使用をサポートしていません。 これらの MVS データ・セットを使用するには、 実際のデータ・セット名を指定する必要があります。
  • MVS データ・セットをコンポーネント・ファイルとして指定することはできません。
  • MVS データ・セットに 書き込む場合は、-f archive パラメーターを使用してデータ・セットを識別する必要があります。

各コンポーネントのファイルおよび ディレクトリーと共に、所有者名とグループ名、許可ビット、ファイル属性、および 変更時刻などの記録情報も入っています。

したがって、単一のアーカイブ・ファイルを使用して、ディレクトリー構造を 1 つのマシンから別のマシンに転送したり、ファイルとディレクトリーのグループのバックアップおよび復元を 行うことができます。

pax で作成されたアーカイブは、tar ユーティリティーで作成されたアーカイブと交換可能です。いずれのユーティリティーとも、他方のデフォルトのフォーマット (pax では USTAR、tar では TAR、両方で os390) のアーカイブの読み取りと 作成を行うことができます。さらに、pax で作成された OS390 フォーマットのアーカイブは、tar ユーティリティーで作成された OS390 フォーマットのアーカイブと交換可能です。アーカイブの名前には、.pax または .tar (あるいは圧縮ファイルの場合 は pax.Z および tar.Z) などの接尾部を一般的には付けますが、付けなくてもかまいません。

形式にあるように、pax は 4 つ のアーカイブ機能の うちの 1 つを、–r–w オプションの指定に従って行います。
リスト
–r または –w を指定しないと、リスト・モードになります。 このモードでは 、pax は既存アーカイブ・ファイルの目次を表示するために、標準出力を使用します。–v (verbose) および –E オプション を使用すると、各コンポーネントのファイル属性 (ファイル・タグと ACL を含む) および 拡張属性を表示できます。デフォルトで、pax はアーカイブ内のコンポーネント・ファイルとディレクトリーを すべて表示します。1 つあるいは複数のパターンを使用すると、特定のコンポーネントについての情報を表示することができます。
読み取り
–r を指定して –w を指定しないと、読み取りモードになります。このモードの場合、pax は アーカイブ・ファイルを入力として読み取り、アーカイブからコンポーネントを取り出します。デフォルトで、 pax はすべてのコンポーネントを選択します。パターン を使用すると、取り出す特定のコンポーネントを指定することもできます。アーカイブに同じ名前のコンポーネントがいくつか含まれている場合、pax はそれぞれを抽出し、古いコンポーネントから作成したファイルを、新しいコンポーネントのものが上書きします。オプションで –k–n–u のいずれかを使用すると、同じ名前を持つ複数のファイルがアーカイブまたは、ファイル・システムにある場合に、抽出について調整することができます。pax は、cpio、tar、および OS390 フォーマットの入力アーカイブを読み取ることができます。

抽出する場合、コンポーネントの完全修飾パス名がルート (/) ディレクトリーで始まっていない 場合、パスは現在の作業ディレクトリーに関連するパスが想定されます。オプションの –s または –i を使用すると、取り出したコンポーネントのパス名を動的に変更することができます。抽出したファイルの所有権、 許可、ファイル属性 (ファイル・タグや ACL など)、および拡張属性については、–p オプションのところで説明しています。

書き込み
–w を指定して –r を指定しないと、書き込みモードになります。 このモードの場合、pax はアーカイブ・ファイルを作成します。このファイルは コンポーネントに指定したパス名を含みます。パス名がディレクトリーの場合、pax はそのディレクトリーにあるファイルとサブディレクトリーのすべてをアーカイブ・ファイル に書き込みます。パス名を指定しなかった場合、pax は選択するパス名の リストを入手するために、標準入力を読み取ります。入力は、1 行当たり 1 つのパス名を与えなければなりません。

–d–X–L のオプションを使用すると、パス名を現在のディレクトリーがデバイス、またはシンボリック・リンクに従うように 制限することができます。

–a オプションを (-w と共に) 使用すると、既存のアーカイブに 付加することができます。

コピーする
–r および –w の両方を指定した場合、コピー・モードになります。 このモードでは、pax は指定されたパス名を読み取り、それらをターゲット・ディレクトリーにコピーします。この場合、与えられたディレクトリーがすでに存在しており、そのディレクトリーに書き込むことができなければなりません。パス名がディレクトリーの 場合、pax は、ディレクトリー自体だけでなく、そのディレクトリー内のすべてのファイルと サブディレクトリーをコピーします。パス名を指定しなかった場合、pax はコピーする パス名のリストを入手するために、標準入力を読み取ります。入力は、1 行当たり 1 つのパス名を与えなければなりません。コピーは、pax (-x pax) フォーマットでのみ行われます。

アーカイブ・ファイルの名前は、–f archive オプションで指定することができます。–f を使用しない場合、pax は、リストおよび読み取り (–r) 関数については、標準入力から読み取り、書き込み (–w) 関数については、標準出力に書き出します。

pax は、cpiotar、および os390 フォーマットの入力アーカイブを 読み取ることができます。また、これらのフォーマットを書き込むこともできます。–x オプションを参照してください。

パターン

コマンド行パターンは、sh コマンドで説明しているワイルドカード 構成と似ています。コマンド行パターンを使用すると、特定のコンポーネントを選択して、アーカイブを読み取ったり、リストしたりすることができます。

パス名内のスラッシュ文字は、パターンの中で 1 つまたは複数のスラッシュを使用して明示的にマッチングさせる必要があります。すなわち、アスタリスク (*) または疑問符 (?)、特殊文字や大括弧式によってマッチングを行うことはできません。例えば、パターン "*.c" は、スラッシュで先行されていない 名前を持つアーカイブ内のファイルとだけマッチングします。 パターン "*/*.c" は、単一スラッシュで先行されたアーカイブ 内のファイルとマッチングします。

ヒント: パターンは、シェルが最初にそれらを展開しないように、引用符で囲んでください。 例えば、パターン *.h が引用符で囲まれていないと、シェルはまずこれを、現行ディレクトリー内の .h で終わっている ファイルのリストに解決します。そのようなファイルがない場合、シェル は *.h を空のリストで置き換えます。その後、pax は、パターンが指定されていないため、アーカイブ内のすべて のコンポーネントをリストします。1 つまたは複数の .h ファイルがシェルによって戻された場合に は、pax は、アーカイブのコンポーネントのうち、現行ディレクトリー内 で見つかった .h ファイルと一致するコンポーネントだけをリストしま す。

書き込みまたはコピーを行う場合、pax でパターンは使用できません。ただし、書き込みまたはコピー機能でも、ワイルドカードを使用してパス名を 指定することができます。それは、シェルが最初にそれらを 展開してから、その結果を pax に渡すからです。

オプション –c を使用するとパターンが一致しないファイルを選択 することができます。

pax コマンドのオプション

以下のオプションを pax コマンド行で指定することができます。これらの中には、コマンドの形式のうちのあるものにだけ使用されるものがあります。コマンドの形式については、形式 に説明があります。
–a
指定されたファイルまたはディレクトリーを、既存のアーカイブの内容の末尾に追加します。アーカイブが存在しない場合は、pax はそれを作成します。
制約事項: 圧縮アーカイブ、および MVS 区分データ・セットにあるアーカイブは付加できません。 また、OS390 フォーマットのアーカイブは、非 OS390 フォーマットのアーカイブに付加できず、 さらに、非 OS390 フォーマットのアーカイブは、OS390 フォーマットのアーカイブに付加できません。
–b blocksize
出力操作でのブロック・サイズを指定します。各出力操作は、blocksize バイトを書き込みます。ここで、blocksize はその出力デバイスに適した整数です。blocksize 数の後に b が続く場合、ブロック・サイズは 512 バイト・ブロックで与えられます。ブロック・サイズ数の後に k が続く場合、ブロック・サイズは 1024 バイト・ブロックで与えられます。tar アーカイブの場合は、デフォルト blocksize は 10 K、および cpio アーカイブの場合は、5 K です。ustar、pax、および os390 の場合は、デフォルトのブロック・サイズは 32,256 バイトです。

出力サイズは、常にブロック・サイズの倍数になります。したがって、最小の出力アーカイブ・サイズはブロック・サイズと等しくなります。

規則: 読み取りの場合、ブロック・サイズは少なくとも 512 バイトなければなりません。
–C
ソース・ファイル・システムでエラーが発生した 後も、pax が継続されます。pax はコマンド終了後に、エラー・ メッセージを印刷してゼロ以外の値を返します。ターゲット・ファイル・ システムでエラーが発生すると (スペース不足や書き込みエラーなど)、通常 どおりに pax コマンドが終了します。

変更の始まり ソケット・タイプのファイルはコピー・モードで –C オプションを使用することでサポートされます。変更の終わり

–c
コマンド行で与えられたパターンのいずれにも 一致しない ファイルをすべて選択します。これは、通常の処理の反対です。パターンが指定されていなければ、ど のファイルとも一致しないことになります。
–D
ターゲット・ディレクトリー・ツリーでは、sparse ファイルは 作成されません。スパース・ファイルとは、ゼロのみを含むファイル・データのページ用の 実ディスク・ストレージを使用しないファイルで、ディスク・スペースに保管されます。このファイルを開いて読み取る と、ファイル・システムは実ディスク・ストレージのないファイルの 箇所にゼロを返します。pax のデフォルトの設定では、ターゲット・ ファイル・システムで sparse ファイルがサポートされていれば、オリジナル・ ファイルが sparse であるかどうかに関係なく、すべてのファイルを sparse として コピーします。
制約事項: -D オプションは pax copy モードでのみ有効です。
–d
ディレクトリーを横断しません。ディレクトリーに一致するパターンは、そのディレクトリー自身だけを抽出します。アーカイブを作成するとき、ディレクトリー名はディレクトリー自身のみを保存します。
–E
詳細 (–v) 出力と同じですが、さらに拡張属性も表示します。詳細は、出力を参照してください。–o E は、pax –E と同じです。
–f archive
リスト・モード、読み取りモード (–r 操作) の場合、標準入力を使用する代わりにアーカイブ・ファイルの名前を指定することが できるようにします。書き込みモード (–w) の場合は、標準出力の代わりに アーカイブ・ファイルの名前を指定することができます。指定するアーカイブ・ファイルは MVS データ・セットであってもかまいません。詳しくは、シェル環境での MVS データ・セット名の指定を参照してください。
ヒント: ディレクトリー・ツリー内またはアーカイブ処理中のファイルのセット内にあるアーカイブへの書き込みは避けてください。これを実行すると、pax はアーカイブをそれ自身に書き込むので、書き込み時または後からの読み取り時に予測できない結果を生じます。
-H
コマンド行で指定されたシンボリック・リンクのみに従います。このオプションを指定すると、pax はシンボリック・リンクが指しているファイルをアーカイブにコピーします。例外は、コマンド行のシンボリック・リンクが他のシンボリック・リンクを示す場合です。シンボリック・リンクのチェーンの最後まで従います。ツリー横断中に検出されたシンボリック・リンクには従いません。シンボリック・リンク自体がアーカイブされます。デフォルトの動作は、シンボリック・リンク自体をアーカイブすることです。

複数の相互排他的オプション -H および -L を指定してもエラーとは見なされず、 最後に指定されたオプションがユーティリティーの動作を決定します。

–i
pax が作業中に、ファイルを名前変更することができるように します。抽出の場合、pax はコンポーネントを抽出する直前に その名前を表示し、抽出されたファイルの名前を指定するチャンスが与えられます。書き込み操作の場合、pax はファイルまたはディレクトリーをアーカイブに 記録する直前にその名前を表示し、そのコンポーネントに異なる名前を割り当てることができます。名前として . を入力した場合、pax は名前に変更を加えずにファイルまたはディレクトリーを処理します。 単に <Enter> だけを押すと、pax はファイルを スキップします (それを抽出または保存しません)。ファイルの終わりを入力した場合 、pax は終了します。

–s も指定した場合は、pax はコンポーネントの名前を表示する前に、与えられた置換を行います。

–k
既存ファイルの上書きを防ぎます。
–L
シンボリック・リンクをたどります。このオプションを指定すると、pax は、シンボリック・リンクが指している ファイルをアーカイブにコピーします。通常は、シンボリック・リンクだけがコピーされます。

複数の相互排他的オプション -H および -L を指定してもエラーとは見なされず、 最後に指定されたオプションがユーティリティーの動作を決定します。

–l
コピー・モードのとき、すなわち、ファイルを別のディレクトリーにコピー するために –rw 形式を使用しているときにのみ適用されます。–l を指定した場合、pax は、可能であれば、ファイルをコピーしないで、元のファイルへのリンクを作成します。
–M
ソース・ディレクトリー・ツリーに存在する各アクティブ・ マウント・ポイントのターゲット・ディレクトリー・ツリー内に、空の ディレクトリーを作成します。 pax はソース・ツリー内のサブディレクトリーが現在の親ディレクトリーと 同じデバイスに存在しているかどうかを検査して、マウント・ポイントを 識別します。この処理は現在の pax -X オプションと類似しています が (親ディレクトリーと同じデバイスに存在するファイルおよびディレクトリー のみを書き出す)、サブディレクトリーをすべてスキップすることはなく、対応 する空のディレクトリーがターゲット・ディレクトリー・ツリーに作成される 点で異なります。ソース・ディレクトリー・ツリーのサブディレクトリー内の 内容は無視されます。
制約事項: -M オプションは pax copy モードでのみ有効です。
–n
pattern 引数を通常のパス名として扱います。このオプションは、–r を指定し、–w は指定して いない場合にのみ使用できます。pax は、与えられたパス名と同じ名前のコンポーネントが アーカイブにいくつか含まれている場合でも、最初のコンポーネントだけを抽出します。pax は、–i または –s オプションによる名前変更を適用する前に、与えられたパス名がアーカイブにあるかチェックします。pax は、アーカイブ内で見つけられない指定ファイルの それぞれに対して、エラー・メッセージを書きます。
–o options
ファイルの書き込みおよび抽出のアルゴリズムを変更するための情報を提供し ます。

以下のオプション群は、USTAR、OS390 フォーマット、および pax フォーマットのための z/OS 拡張 USTAR サポートの使用を制御して、z/OS 固有の情報 (外部リンク、拡張属性、ファイル・タグ情報、ACL、およびその他の情報 (長いリンク名など)) を保存、復元、表示します。そのような情報は、通常では USTAR フォーマットによってサポートされないものです。OS390 および pax フォーマットは、それらの z/OS 固有の属性をデフォルトで保管します。拡張 USTAR サポートに関する詳細については、z/OS 拡張 USTAR サポートを参 照してください。

-o keyword[[:]=value][,keyword[[:]=value], …]
オプションの値は、1 つ以上のキーワード、またはキーワード/値のペアにします。

1 つの -o オプションに対して指定する複数のキーワード、またはキーワード/値のペアは、コンマかスペースで区切ることができます。ただし、環境変数 _UNIX03=YES を使用している場合は除きます。その場合は、コンマ区切りリストにする必要があります。一部のキーワードは、それぞれの説明に示すように、特定のファイル・フォーマットに対してのみ適用されます。処理対象のファイル・フォーマットに適用できないキーワードを使用した場合、pax はそれを無視します。

_UNIX03=YES を使用しなかった場合、キーワードの前に空白があってもよく、値のフィールドはゼロ個以上の文字で構成されます。 値の中で、リテラルのコンマの前には円記号 (¥) を付ける必要があります。 オプション の最後の文字としてのコンマ、または、後に空白だけが続くコンマは無視されます。

-o オプションは、複数指定できます。 複数の -o オプションに指定したキーワードが競合する場合は、コマンド行シーケンスで後の方に出現するキーワードと値が優先されます。

-x pax フォーマットが指定された場合、拡張ヘッダー・キーワードで定義され、以下のリストにあるキーワードおよび値のいずれでも、以下の 2 つのモードのどちらかで -o options で使用できます。
keyword=value
書き込みまたはコピー・モードで使用する場合、これらのキーワードと値の対は新規アーカイブのグローバル拡張ヘッダー・レコードに書き込まれます。読み取りまたはリスト・モードで使用する場合、これらのキーワードと値の対は、読み取られるアーカイブのグローバル拡張ヘッダー・レコード内に存在している場合と同じように機能します。いずれの場合も、個別の拡張ヘッダー・レコードで指定されたキーワードに対して値が割り当てられていないすべてのファイルに指定の値が適用されます。
keyword:=value
書き込みまたはコピー・モードで使用する場合、これらのキーワードと値の対は、新規アーカイブの各ファイルの拡張ヘッダー・レコードに書き込まれます。読み取りまたはリスト・モードで使用する場合、これらのキーワードと値の対は、読み取られるアーカイブの各ファイルの拡張ヘッダー・レコード内に存在している場合と同じように機能します。いずれの場合も、グローバルまたはファイル固有の拡張ヘッダー・レコードで検出される指定のキーワードに対するすべての値は、指定された値によりオーバーライドされます。
例えば、以下のとおりです。
pax -r -o "gname:=mygroup" <archive>
アーカイブから読み取られるすべてのファイルで、グループ名が新しい値に強制変更されます。
以下のキーワードがサポートされています。
A
拡張アクセス制御リスト (ACL) のデータを表示します。 ACL についての詳細は、「z/OS UNIX System Services 計画」および アクセス制御リスト (ACL) に対する pax サポートを参照してください。

pax -o A を指定しても、詳細な目次形式は自動的にオンになりません。ファイルと関連したファイル許可ビット設定を 表示するには、–v も指定する必要があります。

atime=value
拡張ヘッダー・キーワードを参照してください。
charset=value
拡張ヘッダー・キーワードを参照してください。
comment=value
拡張ヘッダー・キーワードを参照してください。
delete=pattern
(-x pax フォーマットのみに適用可能です。) 読み取りまたはコピー・モードで使用する場合、 pax は、拡張ヘッダー・レコードにあるストリング・パターンと一致するキーワードをすべて省略します。 読み取りまたはリスト・モードで使用する場合、 pax は、 拡張ヘッダー・レコードにある pattern に一致するキーワードをすべて無視します。例えば、以下のとおりです。
-o delete=realtime.*
これは、realtime キーワードに関連する情報を抑制します。複数の -o delete=pattern オプションを指定すると、パターンは追加されます。指定されたストリング・パターンに一致するすべてのキーワードが、pax により作成される拡張ヘッダー・レコードで省略されます。パターンは、ファイル名の生成 で指定されているものと同じ規則に従います。
E
アーカイブの目次を表示する時に、拡張属性は表示されます。自動的に -v をオンにします。 このオプションは、pax -E オプションと同義です。
exthdr.name=string
(-x pax フォーマットのみに適用可能です。) このキーワードを使用すると、pax ヘッダー・ブロックで説明している状況で作成される拡張ヘッダーの USTAR ヘッダー・ブロックに書き込まれた名前を制御できます。名前は、以下の文字置換が行われた後の string の内容です。
表 1. exthdr.name のストリング値
string の内容 置換後の内容
%d ファイルのディレクトリー名。変換されたパス名の dirname ユーティリティーの結果に相当します。
%f ファイルのファイル名。変換されたパス名の basename ユーティリティーの結果に相当します。
%p pax プロセスのプロセス ID。
%% % 記号文字。

ストリング内の他のすべての % 記号文字により、文字自体が作成されます。 例えば、% により文字 's' が出力されます。

-o exthdr.name=string を指定しないと、pax は以下のデフォルト値を使用します。
%d/PaxHeaders.%p/%f
from=codeset

from=codeset は通常、to= codeset と一緒に使用されます。

アーカイブの読み取りまたは書き込みの際に、あるコード・セットから別のコード・セットにデータを変換します。 これは、機能の面では、アーカイブの前後に iconv ユーティリティーを使用して各ファイルを変換するのと同じことです。このオプションの形式で、keywordfrom であり、value はコード・セットです。codeset は、システムに認識されているコード・セット名かコード化数字セット ID (CCSID) のいずれかです。コード・セット名が指定された場合、その名前に関連付けられている数値 CCSID が使用されます。コマンド iconv -l は、既存の CCSID とそれらに対応するコード・セット名をリストすることに留意してください。

2 つの共通コード・セット名とその値を次に示します。
ISO8859-1
ASCII
IBM-1047
EBCDIC
例えば、ASCII から EBCDIC に変換するには、以下のように指定します。
-ofrom=ISO8859-1,to=IBM-1047
EBCDIC から ASCII に変換するには、以下のように指定します。
-ofrom=IBM-1047,to=ISO8859-1

コード・セットの完全なリストについては、「z/OS XL C/C++ プログラミング・ガイド」を参照してください。

to または from キーワードのいずれかは、省略することができます。
  • アーカイブの書き込みの際に、from は指定するが to を省略した場合、 pax は、移植可能アーカイブを書き込むものと想定し、 データを ISO/IEC 8859-1 に変換します。 to を指定するが、from を省略した場合、pax はデータを IBM-1047 から変換します。
  • アーカイブの読み取りの際に、from は指定するが to を省略した場合、 pax はデータを IBM-1047 に変換します。 to を指定するが、from を省略した場合、pax はデータを ISO/IEC 8859-1 から変換します。

入力に、ソース・コード・セットで有効でない文字が含まれている 場合、pax はその文字を変換しないままにして、警告を表示し、処理を続行します。宛先コード・セットにない文字がソース・コード・セットに 含まれている場合、pax はその文字を下線 (_) に変換します。

デフォルトでは、ファイル内容のコード・セット変換は行われません。コード・セット変換を行うとき、pax はすべてのファイルがテキスト・ファイルであると想定します。これは、テキスト・ファイルのみが移植可能であるためです。

fromfiletag
–o from=,to= と一緒に使用します。

–o fromfiletag を使用すると、コンポーネント・ファイルが それに割り当てられたコード化文字セットを持っている場合、そのコード化文字セットが from= codeset として 使用されて、–o from=,to= で指定された値がオーバーライドされます。

gid=value
拡張ヘッダー・キーワードを参照してください。
globexthdr.name=string
(-x pax フォーマットのみに適用可能です。) 適切なオプションを指定して書き込みまたはコピー・モードで使用する場合、pax は、USTAR ヘッダー・ブロックにより、pax の以前のバージョンで通常のファイルとして扱われるグローバル拡張ヘッダー・レコードを作成します。このキーワードを使用すると、グローバル拡張ヘッダー・レコードの USTAR ヘッダー・ブロックに書き込まれる名前を制御できます。名前は、以下の文字置換が行われた後の string の内容です。
表 2. globexthdr.name のストリング値
string の内容 置換後の内容
%n アーカイブ内のグローバル拡張ヘッダー・レコードのシーケンス番号を表す、1 から始まる整数。
%p pax プロセスのプロセス ID。
%% % 記号文字。

ストリング内の他のすべての % 記号文字により、文字自体が作成されます。 例えば、% により文字 's' が出力されます。

-o globexthdr.name=string を指定しないと、pax は以下のデフォルト値を使用します。
$TMPDIR/GlobalHead.%p.%n
ここで、$ TMPDIR は TMPDIR 環境変数の値を表します。TMPDIR が設定されていない場合は、pax は /tmp を使用します。
gname=value
拡張ヘッダー・キーワードを参照してください。
invalid=action
(-x pax フォーマットのみに適用可能です。) このキーワードを使用すると、読み取りまたはコピー・モードの場合は宛先階層で無効な値、 またはリスト・モードではコード・セットおよび現行ロケールで書き込むことができない値が 拡張ヘッダー・レコードで検出された場合に、pax が実行するアクションを制御できます。以下に、pax により認識される無効なキーワードの値を示します。
  • 読み取りまたはコピー・モードでは、宛先階層で無効な文字エンコードを含むファイル名またはリンク名。例えば、 組み込みヌル文字を含む名前。
  • 読み取りモードおよびコピー・モードの場合で、パス名のコンポーネントまたはパス名全体の宛先階層で許可される最大長より長い、ファイル名またはリンク名。
  • リスト・モードで、コード・セットおよび現行ロケールに書き込むことができない文字ストリング値 (ファイル名、リンク名、ユーザー名など)。
bypass
読み取りまたはコピー・モードで、pax がファイルをバイパスするため、宛先階層は変更されません。リスト・モードでは、pax はファイルに対して要求されたすべての有効な値を書き込みますが、無効値は書き込みません。
rename
読み取りまたはコピー・モードで、pax は、無効なファイル名またはリンク名の値を持つ各ファイルに対して -i オプションが有効であるかのように機能するため、ユーザーは対話式に置換名を指定できます。リスト・モードでは、pax はバイパス・アクションと同じ方法で機能します。
UTF-8
読み取り、コピー、またはリストのモードで使用し、 拡張ヘッダー・レコードのファイル名、リンク名、所有者名、またはその他のフィールドを pax UTF-8 コード・セット・フォーマットからコード・セットおよび現行ロケールに変換できない場合、 pax は実際の UTF-8 エンコードを名前に使用します。
write
読み取りまたはコピー・モードで、pax は、有効な名前の既存ファイルを上書きするかどうかに関係なく、名前を変換してファイルを書き込みます。リスト・モードでは、pax はバイパス・アクションと同じ方法で機能します。
-o invalid= option を指定しない場合、pax-o invalid= bypass が指定された場合と同じ方法で機能します。-o invalid= アクションで許可される既存ファイルへの上書きは、許可 (-p) および変更時刻 (-u) の制約事項に従って行われ、-k オプションも指定されている場合は抑制されます。
linkdata
(-x pax フォーマットのみに適用可能です。) 書き込みモードで、pax は、ファイルがすでに内容がアーカイブに書き込まれたファイルへの単なるハード・リンクである場合でも、ファイルの内容をアーカイブに書き込みます。
linkpath=value
拡張ヘッダー・キーワードを参照してください。
listopt=format
このキーワードは、リスト・モードで -v オプションが指定されている場合に作成される目次の出力フォーマットを指定します。 あいまいさを避けるには、listopt= フォーマットは、-o options 引数内の、 唯一のキーワードまたは最終キーワードでなければなりません。 -o options 引数の残りのすべての文字は、 format ストリングの一部と見なされます。複数の -o listopt= フォーマット・オプションを指定すると、書式制御ストリングは単一の連結したストリングとして見なされ、コマンド行の順序で評価されます。

データを正しく表示するためには、数値データ用に表示されるフィールドに正しい変換指定子の文字を使用してください。例えば、z/OS システムのサイズ・フィールドは、多くの場合、long データ型です。これより短精度のデータ型、例えば %d の変換指定子を使用してサイズ・フィールドを表示しようとすると、結果として、サイズ・フィールドの内容でなく、ゼロが表示されます。

mtime=value
拡張ヘッダー・キーワードを参照してください。
noext
-o saveext | noext を参照してください。
path=value
拡張ヘッダー・キーワードを参照してください。
realtime.any=value
拡張ヘッダー・キーワードを参照してください。
security.any=value
拡張ヘッダー・キーワードを参照してください。
saveext | noext
USTAR および OS390 フォーマットのアーカイブについて、 拡張 USTAR サポートが使用可能にされるか (saveext)、 使用不可にされるか (noext) を制御します。 アーカイブを書き込むときの USTAR フォーマットの デフォルト動作は、noext です。
アーカイブを書き込むときの OS390 フォーマットに 対するデフォルト動作は、saveext オプションです。アーカイブからファイルを抽出またはリストする ときのデフォルト動作です。これは、拡張属性と外部リンクを保管するための デフォルトでもあります。ACL またはファイル・タグなどの属性をリストするには、 -o A および -o T オプションを使用する必要があります。 このオプションは USTAR フォーマット以外には影響を与えません。拡張 USTAR サポートに関する詳細については、z/OS 拡張 USTAR サポートを参 照してください。
表 3. USTAR デフォルト
アクション USTAR デフォルト
書き込み、コピー -noext
抽出、リスト -saveext
saveext
saveext が指定されていると、アーカイブ書き込み時に、pax は拡張 USTAR 情報を保存します。また、saveext が指定されていると、 アーカイブをリストするときに、pax は拡張 USTAR 情報を表示します。さらに、saveext が指定されていると、 アーカイブ読み取り時に、pax は拡張 USTAR 情報を復元します。ある特定の情報を復元するには、ユーザーは該当する権限も持っ ていなければならず、さらに対応するオプションを指定している必要があり ます。例えば、拡張属性を復元するためには、-px が指定される必要があり、ACL を復元するためには、-pA が指定される必要があります。外部リンクおよび拡張属性は、USTAR および OS390 フォーマットに対する デフォルトによって保管されます。特殊ヘッダーを必要とするファイル属性、 例えば、長いリンク、ファイル・タグ、および ACL の場合は、-o saveext が USTAR に ついて指定される必要があります (OS390 は、デフォルトで -o saveext を使用 します)。サポートをオンにするために、環境変数 _OS390_USTAR=Y も使用できます。拡張 USTAR サポートに関する詳細については、z/OS 拡張 USTAR サポートを参 照してください。
noext
アーカイブを作成するときに、拡張 USTAR 情報を保存しません。アーカイブを読み取ったりリストすると きに、アーカイブ内にエンコードされている拡張 USTAR サポート (拡張属性、長いリンク、外部リンク、ファイル・タグ、ACL など) を すべて無視します。アーカイブが z/OS 特殊ヘッダー・ファイルを含んでいる場合、 それらのファイルは通常のファイルとして表示または復元 (あるいはその両方) されます。特殊ヘッダー・ファイルは z/OS 拡張 USTAR サポートに説明があります)。
制約事項: pax (-x pax) フォーマットは、noext オプションを認識しません。
setfiletag
-o from=,to= と一緒に使用します。

-o setfiletagを使用すると、まだタグが付けられていないコンポーネント・ファイルにタグが付けられます。

ファイルがタグ付け解除されている (TXTFLAG = OFF, CCSID = 0) 場合、ターゲットのコード・セットに TXTFLAG = ON と CCSID = を指定して自動的に格納されます。

まだタグ付け解除していないファイルでは、-o setfiletag は そのデフォルト動作を変更しません。ターゲット・コード・セットおよび TXTFLAG 値は現状のままになります。 例えば、混合としてタグ付けされたファイルは、TXTFLAG = OFF と CCSID <> 0 を持ちます。UNIX は、ファイルを mixed 状態にすることに対する ユーザーの理由をオーバーライドしたくないために、自動的に TXTFLAG = ON にしません。

size=value
拡張ヘッダー・キーワードを参照してください。
times
(-x pax フォーマットのみに適用可能です。) 書き込みまたはコピー・モードで使用する場合、pax は各ファイルの atime および mtime 拡張ヘッダー・レコードを組み込みます。
T
ファイル・タグ情報を表示します。ls –Tchtag 出力に類似しています。ls –T が自動的に詳細 (–v) をオンにしたのと 同じ方法で、–l (詳細リスト) オプションを自動的に オンにしません。–v を指定せずに使用した場合、ファイル・タグ情報とファイル名だけが 表示されます。
例 : –v を指定せずに使用した場合
/tmp> pax -o T -f asciitagged.pax
m ISO8859-1   T=off text_am
t ISO8859-1   T=on  text_at
- untagged    T=off text_au

このオプションは、–v または –o E と一緒に使用されて、追加の詳細出力を表示します。

例 : 追加の詳細出力を表示する場合:
/tmp> pax -o T -vf asciitagged.pax
m ISO8859-1 T=off -rw-r--r-- 1 SteveS  Kings 9 Apr 30 22:31 text_am
t ISO8859-1 T=on  -rw r--r-- 1 SteveS  Kings 9 Apr 30 22:31 text_at
- untagged  T=off -rw-r--r-- 1 SteveS  Kings 9 Apr 30 22:06 text_au
to=codeset

to=codeset は通常、from= codeset と一緒に使用されます。

アーカイブの読み取りまたは書き込みの際に、データを別のコード・セットに変換します。 これは、機能の面では、アーカイブの前後に iconv ユーティリティーを使用して各ファイルを変換するのと同じことです。このオプションの形式で、keywordto であり、value はコード・セットです。codeset は、システムに認識されているコード・セット名かコード化数字セット ID (CCSID) のいずれかです。コード・セット名が指定された場合、その名前に関連付けられている数値 CCSID が使用されます。コマンド iconv -l は、既存の CCSID とそれらに対応するコード・セット名をリストすることに留意してください。

2 つの共通コード・セット名とその値を次に示します。
ISO8859-1
ASCII
IBM-1047
EBCDIC
例えば、ASCII から EBCDIC に変換するには、以下のように指定します。
-ofrom=ISO8859-1,to=IBM-1047
EBCDIC から ASCII に変換するには、以下のように指定します。
-ofrom=IBM-1047,to=ISO8859-1

コード・セットは、「z/OS XL C/C++ プログラミング・ガイド」にリストしています。

to または from キーワードのいずれかは、省略することができます。
  • アーカイブの書き込みの際に、from は指定するが to を省略した場合、 pax は、移植可能アーカイブを書き込むものと想定し、 データを ISO/IEC 8859-1 に変換します。 to を指定するが、from を省略した場合、pax はデータを IBM-1047 から変換します。
  • アーカイブの読み取りの際に、from は指定するが to を省略した場合、 pax はデータを IBM-1047 に変換します。 to を指定するが、from を省略した場合、pax はデータを ISO/IEC 8859-1 から変換します。

入力に、ソース・コード・セットで有効でない文字が含まれている 場合、pax はその文字を変換しないままにして、警告を表示し、処理を続行します。宛先コード・セットにない文字がソース・コード・セットに 含まれている場合、pax はその文字を下線 (_) に変換します。

デフォルトでは、ファイル内容のコード・セット変換は行われません。pax すべてのファイルがテキスト・ファイルであると想定します。これは、テキスト・ファイルのみが移植可能であるためです。

uid=value
拡張ヘッダー・キーワードを参照してください。
uname=value
拡張ヘッダー・キーワードを参照してください。
ZOS.any=value
拡張ヘッダー・キーワードを参照してください。
–p string
復元するファイル特性を指定します。デフォルトでは、pax は、各コンポーネント・ファイルのアクセス時間 (アーカイブに保管されている場合) と変更時刻、および現在の umask により変更されたアクセス許可 (モード) のみを復元します。すなわち、これらが完全に復元されるのは、umask が 000 であるときだけです。現在、アクセス時間を保管できるのは、pax フォーマットのアーカイブのみです。他のアーカイブ・フォーマットでは、変更時刻がアクセス時間として使用されます。

アクセス時間を pax フォーマット・アーカイブで保管するには、アーカイブの作成時に -o times を指定するか、アーカイブの作成または抽出の際に -o オプションと atime キーワードを使用して手動でアーカイブ内の全ファイルの共通アクセス時間の値を指定できます。ファイル・タグ情報、外部リンク、 およびターゲットが 100 文字を超えるリンクもデフォルトで復元されます。読み取り対象のアーカイブ内にあるファイル属性だけを復元できます。アーカイブ・フォーマットの制限事項については、-x オプション、-o saveext |noext オプション、およびファイル・フォーマットのファイル・フォーマットの説明を参照してください。

string は、以下の文字を任意に組み合わせて構成することができます。
A
ACL データを復元します。
a
ファイル・アクセス時間を保存しません。
e
ユーザー ID、グループ ID、ファイル・モード、アクセス時間、変更時刻、拡張属性、および ACL 項目を保存します。z/OS 1.8 より前では、監査フラグとファイル・フォーマット (行終了) 属性は、どのアーカイブ・フォーマットにもないため、復元されませんでした。拡張属性は、extattr コマンドによって設定される apsl フラグです。pax フォーマット・アーカイブを使用して監査フラグとファイル・フォーマットを保管でき、その場合は -p e で復元できます。
m
ファイル変更時間を保存しません。
o
ユーザー ID とグループ ID を保存します。
p
ファイル・モード、すなわち、アクセス許可 (umask による変更なし)、セット・ユーザー ID ビット、セット・グループ ID ビット、およびスティッキー・ビットを保存します。

pax は、デフォルトでアクセス許可を復元します。_UNIX03=YES の場合、抽出されたファイルは、-p p または -p e が使用された場合を除き、0666 (umask による変更あり) の許可を持ちます。

W
ユーザー要求の監査属性と監査員要求の監査属性、およびファイル・フォーマットを保存します。監査員要求の監査属性を正常に設定するには、システム・セキュリティー製品で、呼び出すユーザー ID に AUDITOR 属性を設定する必要があります。
x
拡張属性を保存します。拡張属性は、extattr コマンドによって設定される apsl フラグです。

e または o のいずれの指定文字も指定されない場合、あるいはユーザー ID およびグループ ID が何らかの理由で保存されていない場合、pax はファイル・モードのセット・ユーザー ID およびセット・グループ ID ビットを設定しません。

–q
読み取りモード専用で、pax は作成されたすべてのファイルがテキスト・ファイルであるとみなし、これらをローカル・テキスト・ファイル・フォーマットに抽出します。固定長レコードをもつシステムでは、これは埋め込みとしてブランクを追加することを意味する場合があります。

UNIX および POSIX 準拠のシステムの場合、pax はキャリッジ・リターン文字 (¥r) をすべて取り除き、 改行文字 (¥n) だけを保持します。

–r
標準入力からアーカイブ・ファイルを読み取ります。
–s substitute
置換コマンド substitute を使用して、パス名を変更します。これは、ed テキスト・エディターの置換コマンドに 類似しています。全オプションは、以下の形式です。
–s#bregexp#string#[gp]
ここで、bregexp は 基本正規表現、そして string は基本正規表現に一致したものの 代わりに pax が挿入するストリングです。string には 、副次表現による一致のために アンパーサンド & (bregexp に一致するストリングを表す)、または ¥1¥2 など (regexp 内で 定義された意味で) を含めることができます。

# は、bregexp および string を分離する区 切り文字として使用します。これの代わりに任意の非ヌル文字を使用すること もできます。-s と区切り文字の間にスペースを入れることはでき ません。

通常、–sbregexp に最初に一致したものだけを置き換えます。string の後の g は、行の中で一致するものすべてを置き換えます。

string の後の p は、すべての正常な置換を標準エラー・ストリームに出力します。pax は、以下の形式で置換を表示します。
oldname >> newname

コマンド行に、複数の –s オプションがあっても 構いません。この場合、pax は与えられた順序で置換を試みます。pax は、最初に正常な置換が行われると、ただちに置換の試みを停止します。ファイル名がヌル・ストリングに置き換えられた 場合、pax はそのファイル名を入力および出力の両方で無視します。

–t
アーカイブ中のファイルを読み取った後 、pax はアクセス時間を pax のアクセス以前の 時間にリセットします。
–u
コンポーネントの日付を同じ名前の既存ファイルと比較します。コンポーネントを –r (読み取りモード) で抽出するとき、pax は、ファイルの変更日付が 同じ名前の既存ファイルの変更日付よりも新しい場合にのみ、そのファイルを抽出します。言い替えると、既存ファイルがアーカイブ内のファイルよりも新しい場合は、既存ファイルを上書きしません。

同様に、ファイルを –rw (コピー・モード) でコピーするとき、コピーされるファイルよりも既存ファイルが新しい場合、pax は既存ファイルを上書きしません。

–w を使用し、–r を使用しない場合 (書き込みモード)、–u は、追加されるファイルの名前がすでにアーカイブ内にある ファイルと同じであるかどうかを調べます。同じ名前のファイルがあり、追加されるファイルがアーカイブ内のファイルよりも新しい場合、pax はアーカイブ内の古いファイルをそのままにして、その末尾に新しいファイルを追加します。この場合、–u は自動的に –a を暗黙に指定し、これは pax が新しいファイルをアーカイブの末尾に 追加することを意味します。

–V volpat
自動マルチボリューム・サポートを提供します。pax は、出力をファイルに書き込みます。ファイルの名前は、volpat を使ってフォーマットされます。これは 、volpat 内のすべての # のオカレンスを 現行ボリューム番号に置き換えます。このオプションを指定して pax を呼び出すと、このコマンドはアーカイブ・セット内の最初の番号を尋ね、この番号とキャリッジ・リターン (CR) が入力されるのを待ってその操作を続行します。アーカイブで 読み取りエラーないし書き込みエラーが発生したとき も pax は同様のメッセージを出します。その理由は、この種のエラーは、pax がボリュームの 終わりに到達し新しいボリュームに進む必要があるためです。この時点の割り込みは 、pax を終了させます。
–v
–i、または –s オプションが処理された後、ファイルまたはディレクトリーの処理を開始する直前に、標準エラー・ストリーム上にパス名をリストします。 リスト・モード (–r–w も指定されていない) では 、pax は「詳細」目次を表示します。この詳細形式は 、ls コマンドで使用されるのと同じ形式で、コンポーネントに関する情報を表示します。詳細は、出力を参照してください。
-W seqparms=parms
順次データ・セット (まだ存在しない場合) を作成するために必要な パラメーターを指定します。RECFM、LRECL、BLKSIZE、および SPACE を、fopen() 関数が使用する形式で指定することができます。
SPACE=(units,(primary,secondary) ここで、units には、次の値を使用できます。
  • BLKSIZE を示す任意の正の整数
  • CYL (大文字小文字混合)
  • TRK (大文字小文字混合)
SPACE は次のように指定します。
SPACE=(500,(100,500)) units, primary, secondary
SPACE=(500,100) units and primary only
fopen() 引数: LRECL は、固定長レコードの場合は長さを、可変長レコードの場合は最大長を、バイト単位で指定します。BLKSIZE は、レコードの物理ブロックの最大長をバイト単位で指定します。 RECFM は、データ・セットのレコード・フォーマットを指し、SPACE は、MVS データ・ セットのスペース属性を示します。例えば、次のとおりです。
pax -W "seqparms='RECFM=U,space=(500,100)'" -wf "//'target.dataset'" source
これらのパラメーターの指定については、「z/OS XL C/C++ プログラミング・ガイド」を参照してください。
–w
指定されたアーカイブ・フォーマットで、ファイルを標準出力に書き 込みます。
–X
親ディレクトリーと同じデバイスにあるファイルだけを書き出します。ただし、現在マウント・ポイントとして使用中のディレクトリーはコピーしません。ユーザーは、 そのマウント・ポイントからファイル・システムをアンマウントするか、あるいは、 そのディレクトリーを手動でコピーする必要があります。
–x format
出力アーカイブのファイル・フォーマットを指定します。format 引数には、以下の指定ができます。
cpio
cpio コマンドで使用される ASCII フォーマット。
cpiob
cpio で使用されるバイナリー・フォーマット。
os390
OS390 フォーマットを表します。これは、特殊ヘッダー、外部リンク、長いリンクなど、 拡張 USTAR サポートの保管/復元をすべてサポートします。このフォーマットは z/OS システムでのみサポートされます。
pax
pax 交換フォーマット。これは、os390 フォーマット (-x os390) および拡張 USTAR(-o saveext) と同様に、USTAR ヘッダー・フォーマットに保管できないファイル属性、例えば、ACL、外部リンク、長いリンク名、長いパス名、ファイル・タグ、拡張属性などを保存または復元します。

さらに、pax 交換フォーマットは、他のフォーマットでは処理できないファイル属性、 例えばサイズが 8 GB を超えるファイル、2097151 を超える uid 値と gid 値、 および z/OS 固有の属性 (ユーザーの監査フラグ、監査員の監査フラグ、ファイル・フォーマット) の保存/復元を行うことができます。ある特定の情報を復元するには、ユーザーは該当する権限も持っ ていなければならず、さらに対応するオプションを指定している必要があり ます。ファイル属性を復元するためのオプションについては、-p の項を参照してください。

コピー・モードでは、paxpax 交換フォーマットを使用している場合と同じように機能します。

tar
tar ファイルのヒストリカル・フォーマット。
ustar
tar コマンドで使用される USTAR フォーマット。 これが format のデフォルトです。

拡張属性、外部リンク、および 100 文字を超えるリンク名に関する情報を保存するには、 _OS390_USTAR=Y 環境変数、または -o saveext オプションのいずれかを指定した ustar を使用できます。また、これらの属性を保管するには、 -x os390 または -x pax オプションを使用できます。

ヒント: 古い z/OS システムで抽出される可能性があるアーカイブを作成するときは、USTAR、拡張 USTAR (-o saveext)、または os390 フォーマットを使用します。アーカイブが、z/OS リリース 8 以降のシステムでのみ抽出される場合は、 pax format (-x pax) がお勧めできるフォーマットです。
–z
書き込みまたは、読み取りモード用で、Lempel-Ziv 圧縮を行います。存在するアーカイブに対して (–a) が 指定されている場合、–z は使用できません。
ヒント: アーカイブ・ファイルを –f のオプションを使用して作成する場合、アーカイブ名に .Z の接尾部を付けて、圧縮したファイルであることがわかるようにし、(必要に応じて) 圧縮解除の処理ができるようにします。

読み取り用で –z は機能的にはアーカイブされたものを圧縮解除ユーティリティーを使用して、最初に 圧縮解除し、次にそれを読み取るのと同じです。圧縮したアーカイブ・ファイルを読み取る場合は、このオプションは必須ではありません。pax は自動的にアーカイブ・ファイルが圧縮されていることを検知します。 ただし、–z を使用して、 アーカイブ・ファイルが圧縮されていることを確認してください。 圧縮されていないアーカイブに –z を指定した場合、エラー・メッセージが出ます。

出力

リスト・モードで –v または –E オプションが使用されたとき 、pax はアーカイブの詳細な内容一覧表を作成します。 –v の出力は、以下の例外を除いて、ls –l コマンドからの出力と同じ です。
  • 以下の表記
    pathname == linkname
    は、linknamepathname のハード・リンクであることを 示します。
  • シンボリック・リンクおよび外部リンクの場合、pax 出力は常に 0 のファイル・サイズ を示します。
-E オプションからの出力は -v と同じ形式ですが、さらに次の拡張属性を示す欄を表示します。
a
プログラムは AC=1 でリンクされていれば APF 許可で実行されます。
p
プログラムはプログラム制御であると見なされます。
s
プログラムは共用アドレス・スペースで実行されます。
l
プログラムは共用ライブラリー領域からロードされます。(l は、i の大文字ではなく、L の小文字です。)
属性が設定されていません。

pax -E 出力のフォーマットは可変長であり、pax -v (ls -l) ではサポートされない追加のファイル特性を表示するために必要 に応じて拡張されます。

使用上の注意

  1. z/OS システムでは、キャラクター型スペシャル・ファイルの作成、ユーザー名とグループ名の復元、および特定の拡張属性 (対応 する FACILITY クラス・リソースへの読み取りアクセス) の設定を行うには、スーパーユーザー権限または該当する FACILITY クラス・リソースへの読み取りアクセス が必要です。
  2. POSIX 1003.1 標準では、paxtar、および cpio アーカイブのフォーマットを定義し、保管できる UID と GID を pax - 移植可能アーカイブを交換するに示す最大値に制限しています。
    表 4. tar、USTAR、cpio および pax の最大 UID および GID 値
    形式 UID および GID の最大値
    tar, USTAR 2,097,151
    cpio 262,143
    pax 2,147,483,647
    tar および cpio フォーマット済みアーカイブの場合、これより大きな値は 正しく復元されません。USTAR フォーマット済みアーカイブでは、ユ ーザー名とグループ名もアーカイブに保管されるので、名前がターゲット・システムで定義されている場合にのみ、正しい UID および GID が復元されます。
  3. ヒストリカル UNIX 標準形式では、pax および tar アーカイブの場合、 リンク・ファイル・ターゲットの長さは 100 文字以下に制限されます。 ハード・リンクが存在する場合、ターゲットは、 アーカイブに保管されているハード・リンクの最初のオカレンスになります。 以後のハード・リンクは最初のインスタンスを 参照します。pax および tar で提供されている拡張 USTAR サポートを使用して、 アーカイブが作成されるときに長いハード・リンクを保管し、アーカイブが読み取られるときにこれらを復元できます。 z/OS V1R8 現在、現行の UNIX 標準で定義されているpax フォーマットは、 その他の (非 z/OS を含む) UNIX プラットフォーム間で転送される長いリンク名を保管/復元する手段を提供しています。 詳しくは、-x pax を参照してください。
  4. ヒストリカル UNIX 標準形式では、 pax および tar アーカイブに保管できるファイルのサイズは、8 ギガバイトに制限されていました。 z/OS V1R8 以降は、pax フォーマットのアーカイブで、8 ギガバイトを超えるファイルを保存できます。 詳しくは、-x pax を参照してください。
  5. z/OS システムと他の UNIX システムとの間でアーカイブを転送する場合は、以下のことにご注意ください。
    1. アーカイブ・ファイルの転送は、 アーカイブにテキスト・ファイルしか入っていない場合でも、常にバイナリー・モードで行う必要があります。 ファイルを転送する一般的な方法には、FTP、cp シェル・コマンド、 および、OPUT と OGET という TSO/E コマンドがあります。
    2. テキスト・ファイルは EBCDIC から ASCII (または他の文字セット) に変換する 必要がある場合があります。 pax -o オプションを使用すれば、アーカイブの作成中または 復元中に、テキスト・ファイルを変換することができます。 iconv ユーティリティーを使用すれば、ファイルがアーカイブ に保管される前、またはファイルをアーカイブから復元した後に、ファイル を変換することができます。
  6. ファイル・タグ情報を持ったファイルに対する自動変換は、 アーカイブを作成中のファイルの読み取り時、または、アーカイブからファイルを抽出中の書き込み時に、使用不可に設定されます。 すなわち、自動変換をオンとオフにするシステム変数と環境変数の設定は、pax が ファイルを読み取りおよび書き込むことに影響しません。

ファイル・タグ

-o from=,to= オプションを使用して変換を実行するとき、 ファイル・タグ情報を保管するデフォルトの動作は、次のようになります。
–w (書き込み)

タグ付けされているファイルの場合、 アーカイブに保存されている CCSID は to=codeset 引数の CCSID に設定されます。 タグ付け解除された (TXTFLAG = OFF および CCSID = 0) ファイルは、ファイル・タグ情報を 格納しません。-o setfiletag オプションは、まだタグ付けされていないファイルを強制的にタグ付けするのに使用します。

アーカイブのファイルが from=codeset とは異なる CCSID でタグ付けされている場合、エラー・メッセージが生成されます。ただし、pax は処理を続行します。この状態が発生するとデータ破壊となる可能性があるため、完了時に pax は ゼロ以外の戻りコードを発行します。この状態を回避するために、 -o fromfiletag オプションを使用できます。 これによって、pax は、-o from=,to= オプションに指定されている CCSID の代わりに、 ファイルの CCSID を使用することができます。

–r (読み取り)

タグ付けされているファイルの場合、TXTFLAG 値は、アーカイブに保存されている値 (ON または OFF) に復元されますが、 ターゲット・ファイルの CCSID は to=codeset CCSID に変更されます。 例えば、mixed としてタグ付けされたファイルは、TXTFLAG = OFF と CCSID ≠ 0 を持ちます。z/OS UNIX は、ファイルを mixed 状態にすることに対するユーザーの理由をオーバーライドしたくないために、自動的に TXTFLAG = ON にしません。

タグ付け解除されているアーカイブのファイルに対するデフォルトの動作は変更されず、ターゲット・ファイルもタグ付け解除状態に設定されます。-o setfiletag オプションは、アーカイブの中でファイルに関連したファイル・タグ情報がないファイルを強制的にタグ付けするのに 使用します。

ターゲット・ファイルがすでに存在する場合、そのファイル・タグ情報は無視されます。

アーカイブのファイルが from=codeset とは異なる CCSID でタグ付けされている場合、エラー・メッセージが生成されます。ただし、pax は処理を続行します。この状態が発生するとデータ破壊となる可能性があるため、完了時に pax は ゼロ以外の戻りコードを発行します。-o fromfiletag オプションはこの状況を回避するのに使用します。このオプションにより、pax-o from=,to= オプションで 指定されている CCSID を使用せず、そのファイルの CCSID を使用することになります。

–wr (コピー)

ソース・ファイルがタグ付けされている場合、ターゲット・ファイルは その CCSID を to=codeset CCSID の CCSID に設定します。 ターゲットがすでに存在している場合、その TXTFLAG 値は無視されます。 ソース・ファイルはターゲットの TXTFLAG 設定を決定するのに使用され、 ターゲットの TXTFLAG 設定が何であろうとそれをオーバーライドします。

–r–w のように、ソース・ファイルの CCSID が from=codeset CCSID と違っている場合、警告メッセージが生成され、完了時に pax はゼロ以外の戻りコードを発行します。-o fromfiletag オプションはこの状況を回避するのに使用します。このオプションにより、pax-o from=,to= オプションで 指定されている CCSID を使用せず、そのファイルの CCSID を使用することになります。

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

以下の拡張ヘッダー・キーワードは、-x pax フォーマットでのみ適用されます。
atime
後続ファイルのファイル・アクセス時間。ファイルの stat 構造の st_atime メンバーの値に相当します。アクセス時間の復元は、プロセスに必要とされる適切な権限がある場合に行われます。
charset
後続のファイルのデータをエンコードするために使用する文字セットの名前。表 5 の項目は、既知の規格と、それぞれを表すために使用される charset 値を示しています。

エンコード方式は、通知の目的でのみ拡張ヘッダーに組み込まれます。pax が説明されているように使用される場合、ファイル・データを他のエンコード方式に変換しません。 BINARY 項目は、エンコードされていないバイナリー・データを示します。

表 5. 文字セット規格
<値> 正式な規格
ISO-IR 646 1990 ISO/IEC 646:1990
ISO-IR 8859 1 1998 ISO/IEC 8859-1:1998
ISO-IR 8859 2 1999 ISO/IEC 8859-2:1999
ISO-IR 8859 3 1999 ISO/IEC 8859-3:1999
ISO-IR 8859 4 1998 ISO/IEC 8859-4:1998
ISO-IR 8859 5 1999 ISO/IEC 8859-5:1999
ISO-IR 8859 6 1999 ISO/IEC 8859-6:1999
ISO-IR 8859 7 1987 ISO/IEC 8859-7:1987
ISO-IR 8859 8 1999 ISO/IEC 8859-8:1999
ISO-IR 8859 9 1999 ISO/IEC 8859-9:1999
ISO-IR 8859 10 1998 ISO/IEC 8859-10:1998
ISO-IR 8859 13 1998 ISO/IEC 8859-13:1998
ISO-IR 8859 14 1998 ISO/IEC 8859-14:1998
ISO-IR 8859 15 1999 ISO/IEC 8859-15:1999
ISO-IR 10646 2000 ISO/IEC 10646:2000
ISO-IR 10646 2000 UTF-8 ISO/IEC 10646、UTF-8 エンコード方式
BINARY なし
comment
コメントとして使用される一連の文字。値フィールドのすべての文字は pax により無視されます。
gid
ファイルを所有するグループのグループ ID。ISO/IEC 646 の数字を使用して 10 進数として表されます。このレコードは、後続のヘッダー・ブロックの gid フィールドをオーバーライドします。

書き込みまたはコピー・モードで使用する場合、pax は、グループ ID が 2097151 (8 進数 7777777) より大きい各ファイルの gid 拡張ヘッダー・レコードを組み込みます。

gname
後続のファイルのグループ。グループ・データベース内のグループ名としてフォーマット設定されています。このレコードは、後続のヘッダー・ブロックの gidgname フィールド、および gid 拡張ヘッダー・レコードをオーバーライドします。

読み取り、コピー、またはリスト・モードで使用する場合、pax は、名前をヘッダー・レコードの UTF-8 エンコード方式から受信システムのグループ・データベースに適した文字セットに変換します。いずれかの UTF-8 文字を変換できず、かつ -o invalid=UTF-8 オプションが指定されていない場合、-o invalid=bypass が指定されている場合と同じように結果は未定義になります。

書き込みまたはコピー・モードで使用する場合、pax は、グループ名全体を移植可能文字セットの文字と数字で表すことができない各ファイルの gname 拡張ヘッダー・レコードを組み込みます。

linkpath
前にアーカイブされたすべてのタイプの別のファイルに対して作成されるリンクのパス名。このレコードは、後続の USTAR ヘッダー・ブロックの linkname フィールドをオーバーライドします。

後続の USTAR ヘッダー・ブロックは、作成されるリンクのタイプをハードまたはシンボリックとして決定します。後者の場合、linkpath 値はシンボリック・リンクの内容です。pax は、リンクの名前 (シンボリック・リンクの内容) を UTF-8 エンコード方式からローカル・ファイル・システムに適した文字セットに変換します。

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

mtime
後続のファイルのファイル変更時刻。ファイルの stat 構造の st_mtime メンバーの値に相当します。このレコードは、後続のヘッダー・ブロックの mtime フィールドをオーバーライドします。プロセスに適切な権限がある場合、変更時刻は復元されます。
path
後続のファイルのパス名。このレコードは、後続のヘッダー・ブロックの name および prefix フィールドをオーバーライドします。pax は、ファイルのパス名を UTF-8 エンコード方式からローカル・ファイル・システムに適した文字セットに変換します。

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

realtime.any
realtime. の接頭部が付いたキーワードは、将来の POSIX realtime 標準化に向けて予約されています。pax は認識しますが、自動的に無視します。
security.any
security. の接頭部が付いたキーワードは、将来の POSIX security 標準化に向けて予約されています。pax は認識しますが、自動的に無視します。
size
オクテット単位のファイルのサイズ。ISO/IEC 646 の数字を使用して 10 進数として表されます。このレコードは、後続のヘッダー・ブロックの size フィールドをオーバーライドします。

書き込みまたはコピー・モードで使用する場合、pax は、size 値が 8589934591 (8 進数 77777777777) より大きい各ファイルの拡張ヘッダー・レコードのサイズを自動的に組み込みます。

その他のキーワードと同様、ユーザーは -o size=value または -o size:=value を使用して、この値を手動で設定できます。ただし、この方法を行わないことをお勧めします。size 拡張レコード・キーワードのグローバルまたは拡張サイズ・レコードを作成すると、読み取りまたは書き込みモードで使用した場合に障害またはデータ破壊の原因となる可能性があります。size 拡張レコードは、コピー・モードでは pax により無視されます。

uid
ファイルを所有するユーザーのユーザー ID。ISO/IEC 646 の数字を使用して 10 進数として表されます。このレコードは、後続のヘッダー・ブロックの uid フィールドをオーバーライドします。

書き込みまたはコピー・モードで使用する場合、pax は、所有者 ID が 2097151 (8 進数 7777777) より大きい各ファイルの uid 拡張ヘッダー・レコードを組み込みます。

uname
後続のファイルの所有者。ユーザー・データベース内のユーザー名としてフォーマット設定されています。このレコードは、後続のヘッダー・ブロックの uiduname フィールド、および uid 拡張ヘッダー・レコードをオーバーライドします。

読み取り、コピー、またはリスト・モードで使用する場合、pax は、名前をヘッダー・レコードの UTF-8 エンコード方式から受信システムのユーザー・データベースに適した文字セットに変換します。いずれかの UTF-8 文字を変換できず、かつ -o invalid=UTF-8 オプションが指定されていない場合、-o invalid=bypass が指定されている場合と同じ結果になります。

書き込みまたはコピー・モードで使用する場合、pax は、ユーザー名全体をポータブル文字セットの文字と数字で表すことができない各ファイルの uname 拡張ヘッダー・レコードを組み込みます。

ZOS.acls
後続のファイルの拡張アクセス制御リスト(拡張 ACL)。
書き込みまたはコピー・モードで使用する場合、pax は、拡張 ACL が設定されている各ファイルの ZOS.acls レコードを組み込みます。ZOS.acls キーワードの値は、次のフォーマットです。
[d[efault]: | f[default]:]u[ser]:uid:perm
[d[efault]: | f[default]:]g[roup]:gid:perm  
ここで、
d[efault]
指定すると、拡張 ACL がディレクトリーのデフォルト ACL を参照します。
f[default]
指定すると、拡張 ACL がファイルのデフォルト ACL を参照します。
u[ser]
拡張 ACL が特定の数値ユーザー ID (UID) またはユーザー名を参照します。
g[roup]
拡張 ACL が特定の数値グループ ID (GID) またはグループ名を参照します。
uid
ユーザー名、または数値ユーザー ID (UID)。
gid
グループ名、または数値グループ ID (GID)。
perm
絶対形式 (プレースホルダーとして - が指定されたストリング) または 8 進形式のいずれかで指定された許可。
構文例
-o ZOS.acls=user:billy:r-x 
-o ZOS.acls=g:cartoons:r 
次の例で、値で複数の項目がコンマで区切られていますが、これらのリテラル・コンマが -o 値の中にあるため、前にバックスラッシュを付ける必要がある点に注意してください。コンマは、値が引用符に囲まれているかどうかに関係なく、キーワードと値の対を区切るために使用されるためです。
-o 
ZOS.acls=user:user1:r-x¥,group:thegang:r--¥,user:user2:r-x
¥,d:user:user1:r-x¥,d:group:thegang:r--¥,d:user:user2:r-x
ZOS.taginfo
ZOS.taginfo キーワードの値は、テキスト・フラグ (txtflag) とコード化文字セット で構成され、ユーザーはファイルに関連付けられた taginfo を変更することができます。

txtflag は、均一にエンコードされたテキスト・データを含んだファイルか、または均一にエンコードされていないテキスト・データを含むファイルかを示します。txtflag の値は、0 (txtflag が OFF であることを示す) または 1 (txtflag が ON であることを示す) です。txtflag が 1 (ON) の場合、指定されたファイルには純粋な (均一にエンコードされた) テキスト・データが含まれていることを示します。混合または不明なバイナリー・データを含むファイルの場合、txtflagは 0 (OFF) です。

コード化文字セットは、テキスト・データをエンコードするコード・セットを表します。コード・セットは、一様にエンコードされたテキスト・ファイル、またはテキストとバイナリーの 混合データを含むファイルに使用できます。これは、システムに認識されているコード・セット名またはコード化数字セット ID (CCSID) のいずれかです。コード・セット名が存在する場合、その名前に関連付けられている numeric CCSID が使用されます。

書き込みまたはコピー・モードで使用する場合、pax は、txtflag が 1 (ON) であるか、file のタグが外されていない各ファイルの ZOS.taginfo 拡張ヘッダー・レコードを組み込みます。

コマンド iconv -l は、既存の CCSID と対応するコード・セット名をリストします。ZOS.taginfo キーワードの値のフォーマットは以下のとおりです。
0 [ccsid]
1 ccsid
構文例
-o ZOS.taginfo=0
-o ZOS.taginfo="1 819"
-o ZOS.taginfo="0 1208"
-o ZOS.taginfo="1 1047"
ZOS.useraudit
指定したファイルまたはディレクトリーのユーザー要求の監査属性を示します。監査属性は、ファイルへのアクセスがシステム許可機能 (SAF) インターフェースによって 監査されているかどうかを判別します。

書き込みまたはコピー・モードで使用すると、pax は、ユーザー要求監査属性が監査読み取り、書き込み、およびファイルの実行失敗以外である各ファイルの ZOS.useraudit レコードを組み込みます。

ZOS.useraudit キーワードの値は、3 文字の文字列で、 それぞれの文字は下記の 4 文字のいずれかです。最初の位置にある文字は、対応するファイルでの読み取り操作の監査特性を表します。2 番目の文字は、対応するファイルでの書き込み操作の監査特性を表します。3 番目の文字は、対応するファイルでの実行操作の監査特性を表します。
-
監査しない
f
失敗を監査する
s
成功を監査する
a
成功と失敗の両方を監査する
構文例
-o ZOS.useraudit=ffa  
-o ZOS.useraudit=ssa
-o ZOS.useraudit=sf-
ZOS.auditoraudit
指定したファイルまたはディレクトリーの監査員要求の監査属性を示します。監査属性は、ファイルへのアクセスがシステム許可機能 (SAF) インターフェースによって 監査されているかどうかを判別します。

書き込みまたはコピー・モードで使用すると、pax は、監査員要求の監査属性がファイルで設定されている各ファイルの ZOS.auditoraudit レコードを組み込みます。

ZOS.auditoraudit キーワードの値は、3 文字の文字列で、 それぞれの文字は下記の 4 文字のいずれかです。最初の位置にある文字は、対応するファイルでの読み取り操作の監査特性を表します。2 番目の文字は、対応するファイルでの書き込み操作の監査特性を表します。3 番目の文字は、対応するファイルでの実行操作の監査特性を表します。
-
監査しない
f
失敗を監査する
s
成功を監査する
a
成功と失敗の両方を監査する
構文例
-o ZOS.auditoraudit=ffa  
-o ZOS.auditoraudit=ssa
-o ZOS.auditoraudit=sf-
ZOS.filefmt
ファイルがバイナリーかテキストかを指定し、テキスト・ファイルの 場合には、行の終わり区切り文字を指定します。フォーマットには、以下を指定できます。
not
指定されていません
bin
バイナリー・データ
rec
レコード。(ファイル・データは、接頭部の付いたレコードから成ります。レコードの接頭部には、後に続くレコードの長さが含まれます。シェル・コマンドの観点からは、このフォーマットのファイルはバイナリー・ファイルのように扱われます。)
あるいは、以下のテキスト・データ区切り文字。
nl
改行文字
cr
キャリッジ・リターン
lf
改行 (LF)
crlf
キャリッジ・リターン改行
lfcr
改行キャリッジ・リターン
crnl
キャリッジ・リターン改行文字

制約事項: ZOS.filefmtrec の値は、z/OS V1R12 以降でのみ使用可能です。したがって、rec ファイル・フォーマットのオブジェクトが旧リリースで復元された場合、rec ファイル・フォーマットの情報は失われます。

ZOS.extattr
このキーワードの値は 4 文字ストリングです。この値は、ファイルの拡張属性を指定して、実行可能ファイルが APF 許可プログラムとして実行されること、プログラム制御実行可能ファイルとして実行されること、または共用アドレス・スペースで実行されないことをマークできます。
  • 値の先頭文字は、プログラムが APF 許可プログラムとして実行されるかどうかを指定するもので、'a' または '-' のいずれかです。
  • 値の 2 番目の文字は、プログラムがプログラム制御として見なされるかどうかを指定するもので、'p' または '-' のいずれかです。
  • 値の 3 番目の文字は、プログラムが共用アドレス・スペースで実行されるかどうかを指定するもので、's' または '-' のいずれかです。
  • 値の 4 番目の文字は、プログラム・ファイルが共用ライブラリー領域からロードされるかどうかを指定するもので、'l' または '-' のいずれかです。
a
プログラムは AC=1 でリンクされていれば APF 許可で実行されます。
p
プログラムはプログラム制御であるととられます。
s
プログラムは共用アドレス・スペースで実行されます。
1
プログラム・ファイルは共用ライブラリー領域からロードされます。
-
属性が設定されていません。
構文例
-o ZOS.extattr=apsl 
-o ZOS.extattr=ap-l
-o ZOS.extattr=-p--

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

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

このトピックでは、アーカイブ内のファイルに適用するさまざまなヘッダー・レコード、 フィールド、およびコマンド行オプションを選択する際の優先順位について説明します。 pax が読み取りモードまたはリスト・モードで使用されるときは、 ファイル属性を以下のシーケンスで決めます。

  1. -o delete=keyword-prefix が使用される場合、 選択される属性は、適用される場合はステップ 7 から決められ、そうでない場合は無視されます。
  2. 値が指定されずに -o keyword:= が使用される場合、選択される属性は無視されます。
  3. -o keyword:=value が使用される場合、選択される属性に値が割り当てられます。
  4. keyword がファイルに固有の拡張ヘッダー・レコード存在している場合、 選択される属性に値が割り当てられます。拡張ヘッダー・レコードが競合する場合、 ヘッダー内に指定される最後のレコードが優先順位をとります。
  5. -o keyword=value が使用される場合、選択される属性に値が割り当てられます。
  6. keyword がグローバル拡張ヘッダー・レコードに存在している場合、選択される属性に値が割り当てられます。 グローバル拡張ヘッダー・レコードが競合する場合、 グローバル・ヘッダー内に指定される最後のレコードが優先順位をとります。
  7. それ以外の場合、属性は USTAR ヘッダー・ブロックから決められます。

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

-o listopt=format オプションを指定したリスト・モードでは、選択したそれぞれのファイルにフォーマット引数が適用されます。pax ユーティリティーは、選択された各ファイルの listopt 出力に改行文字を付加します。format 引数は、以下を例外とする書式制御ストリングとして使用されます。

  1. 書式制御ストリング内の <space> 文字は、変換指定のフラグを除くすべてのコンテキストで通常の文字として扱われ、出力へコピーされます。
  2. エスケープ・シーケンス ¥¥、¥a、¥b、¥f、¥n、¥r、¥t、および ¥v に加えて、エスケープ・シーケンス ¥ddd (ddd は 1、2、または 3 桁の 8 進数) は、その 8 進数によって指定される数値を持つバイトとして書き出されます。
  3. d または u の変換指定子による出力には、フォーマット・オペランドによって指定されない s が前または後に付加されません。
  4. o 変換指定子による出力には、フォーマット・オペランドによって指定されないゼロが前に付きません。
  5. シーケンス (keyword) は、フォーマット変換指定子の前に置くことができます。 変換引数は、キーワードの値によって定義されます。以下のキーワードがサポートされています。

    USTAR Header Block および Octet-Oriented cpio Archive Entry 内のすべての Field Name 項目。インプリメンテーションは、cpio c_ mode Field の Values によって必要とされる書式に加えて、c_ が先行しない cpio キーワードもサポートします。

    拡張ヘッダー・キーワード内の拡張ヘッダーについて定義されたすべてのキーワード。

    拡張ヘッダー・キーワード内で定義された拡張ヘッダー内でインプリメンテーション定義の拡張子として提供されたすべてのキーワード。例えば、「%(charset)s」というシーケンスは、拡張ヘッダー内の文字セットの名前を示すストリング値です。

    データを正しく表示するためには、必ず、数値データ用に表示されるフィールドに正しい変換指定子の文字を使用してください。 例えば、 z/OS システム ID のサイズ・フィールドは多くの場合、long long データ型です。これより短精度のデータ型、例えば %d の変換指定子を使用してサイズ・フィールドを表示しようとすると、結果として、サイズ・フィールドの内容でなく、ゼロが表示されます。

    キーワード変換引数の結果は、該当するヘッダー・フィールドまたは拡張ヘッダーからの値で、後書き NUL は付きません。変換引数として使用されるすべてのキーワード値は、必要に応じて、UTF-8 エンコード方式からローカル・ファイル・システム、ユーザー・データベースなどに適した文字セットに変換されます。

  6. 時刻形式を指定するために、追加の変換指定子文字 T が使用されます。T 変換指定子文字は、前にシーケンス (keyword=subformat) を付けることができ、subformat は日付オペランドによって定義された日付形式です。デフォルトの keyword は mtime で、デフォルトの subformat は次のとおりです。
     %b %e %H:%M %Y
  7. ls Standard Output で定義されているファイル・モード・ストリングを指定するために、追加の変換指定子文字 M が使用されます。(keyword) が省略された場合は、モード・キーワードが使用されます。例えば、%.1M は ls -l コマンドの項目タイプ・フィールドに対応する 1 文字を書き出します。
  8. ブロックまたは特殊ファイルの装置を指定するために、 追加の変換指定子文字 D が使用されます。
    • D の使用が適用できる場合、フォーマットは『devmajor,devminor』になります。
    • D の使用が適用外で (keyword) が指定された場合、この変換は %(keyword)u と同等です。
    • D の使用が適用外で (keyword) が省略された場合、この変換は <space> と同等です。
  9. パス名を指定するために、追加の変換指定子文字 F が使用されます。F 変換文字には、複数のキーワードをコンマで区切った次のようなシーケンスを前に付けることができます。
    (keyword[,keyword] ... )
    ヌルでないすべてのキーワードの値は連結され、それぞれのキーワードは / で区切られます。デフォルトは、キーワード path が定義されている場合、(path) です。それ以外の場合、デフォルトは (prefix,name) です。
  10. シンボリック・リンクの拡張を指定するために、追加の変換指定子文字 L が使用されます。現行ファイルがシンボリック・リンクである場合、%L は次のように展開されます。"%s -> %s"、キーワードの値、リンクの内容。

    それ以外の場合、%L の変換指定は %F と同等です。

z/OS 拡張 USTAR サポート

OS390 アーカイブ・フォーマットは、すべての拡張 USTAR 属性をデフォルトで保存 します (-o オプションは適用されません)。デフォルトでは、z/OS での pax および tar の インプリメンテーションは USTAR フォーマットに関する拡張サポートを提 供します。これは、通常では USTAR フォーマットに関する制限のためにサ ポートされない z/OS 固有ファイル属性やその他の情報を保存し復元します。OS390 フォーマットも、 これらをデフォルトで保存します。そうした属性や情報には 次のものが含まれます。
  • 外部リンク
  • 拡張ファイル属性 (プログラム制御および APF 許可など)。 拡張属性は、extattr コマンドによって設定される apsl フラグです。監査フラグおよびファイル・フォーマット属性は、保管されません。
このサポートは、USTAR フォーマットを使用するアーカイブについてしか提供されま せん。 アーカイブを作成するときの pax のデフォルトのフォーマットは USTAR です。 tar の場合、デフォルトのフォーマットは元の tar フォーマットです。 しかし、-U オプションを使用すれば、tar が USTAR を使用するようになります。アーカイブの読み取り時には、tar は USTAR フォーマットを自動的に認識 するので、特別のオプションを指定する必要はありません。(USTAR フォーマットについての詳細は、ファイル・フォーマットの『tar -- tar アーカイブのフォーマット』を参照してください。)
pax および tar コマンドでは、明示的なオプションと環境変数を使用して、 追加のファイル属性の保存/復元を行うこともできます。 以下の属性は、特殊ヘッダーを必要とします。OS390 フォーマットは、これらをデフォルトで保存および復元します。これらの追加の属性の例には、次のようなものがあります。
  • ターゲットが 100 文字を超えるようなリンク
  • アクセス制御リスト (ACL)
  • ファイル・タグ情報
  • 名前が 255 文字より長いファイル

拡張 USTAR サポートは、2 つのメカニズム、すなわち、USTAR ヘッダー・ レコード内での情報のエンコードおよび特殊ヘッダー・ファイルの作成によ って提供されます。(同じメカニズムが OS390 アーカイブ・フォーマットにも使用されます。)

USTAR ヘッダー・レコード内のエンコード情報

外部リンクおよび拡張属性情報は、POSIX 標準に準拠した仕方で 標準 USTAR ヘッダー内でエンコードされ、それらの情報は 、z/OS 以外の他のバージョンの pax および tar が 許容されます。 しかし、外部リンクおよび拡張属性情報は z/OS に特有であるため、他の プラットフォームで復元することはできません。

特殊ヘッダー・ファイル

100 文字を超えるターゲットを持つハード・リンクおよびシンボリック・リ ンクは、標準 USTAR フォーマット内では保存できません (ハード・リンクの場合、ターゲットは、アーカイブされるハード・リンクの最初のものであり、それ 以降のハード・リンクは最初のものを参照します)。100 文字を超えるターゲットを持つリンクを保存するために、特殊ヘッダー・ファイル がそれぞれのリンクごと に作成され、アーカイブに保管されます。特殊ヘッダーは、-o saveext オプション、 環境変数 _OS390_USTAR=Y、または -x os390 オプション (OS390 フォーマット) の うちのいずれかが使用された場合に保存されます。

それぞれの特殊ヘッダー・ファイルは、リンクをその元の状態に復元するた めに z/OSpax および tar が使用する情報を含ん でいます。特殊ヘッダー・ファイルはアーカイブの中で "S" タイプとして識別されます (ファイル・タイプについての詳細は、ファイル・フォーマットの『tar -- tar アーカイブのフォーマット』を参照してください)。

アーカイブの中のそれぞれの特殊ヘッダー・ファイルは同じ名前を持 つことになります。それは /tmp/OS390_USTAR_SUMMARY_timestamp です。ここで timestamp は最初の特殊 ヘッダー・ファイルの作成時刻 (エポック以降の秒数で表される) です。例えば、以下のとおりです。
/tmp/OS390_USTAR_SUMMARY_919026474

ファイルを保存するのに特殊ヘッダー・ファイルが要求され、_OS390_USTAR=Y 環境変数が使用されたときには、理由 と共に通知メッセージが表示され、特殊ヘッダー・ファイルが作成されたこ とが示されます。pax に対して -o saveext または -x os390 が、あるいは、tar に対して -UX または -S が使用された場合、 通知メッセージは表示されません。

特殊ヘッダー・ファイルを含んでいるアーカイブを読み取るときまたはリス トするとき、またデフォルトの拡張 USTAR サポートを使用するときには、pax および tar は、"S" タイプのファイルを特殊ヘッ ダー・ファイルとして認識し、実際の特殊ヘッダー・ファイルではなくその 特殊ヘッダー・ファイルが記述しているファイルを表示または復元します。 ですから、通常は、特殊ヘッダー・ファイルの存在についてはユーザーには 分かりません。

アーカイブの完了時に 1 つ以上の特殊ヘッダー・ファイルが作成される場合は、 最後に特殊ヘッダー要約ファイル が作成されてアーカイブに追加されます。 このファイルはアーカイブの中では "T" タイプとして識別され、特殊ヘッダ ー・ファイルと同じ名前を持っています。 このファイルは、以前にアーカイブされたすべての特殊ヘッダー・ファイルの内容を、スクリプト・コマンドおよびコメントによって要約しています。 このファイルの主な目的は、特殊ヘッダー・ファイルによって組み込まれた ファイルを、拡張 USTAR サポートを実装していないバージョン の pax または tar でファイルに復元できるようにする ことです。

このため、z/OS 以外のシステムのユーザーが、特殊ヘッダー要約ファイル を読み取ることができるように、このファイルは ASCII ISO8859-1 コード・セットでエンコードされています。その特殊ヘッダー・ファイルを EBCDIC コード・ページ IBM-1047 で 表示するには、まず iconv コマンドを使ってそのファイル を変換します。例えば、以下のとおりです。
 iconv  -f ISO8859-1  -t IBM-1047  /tmp/OS390_USTAR_SUMMARY_919026474  >
summary_in _ebcdic

pax -o noext または tar -O オプションを使 用してアーカイブを読み取る時またはリストする時に拡張 USTAR サポート が使用不可にされている場合、あるいは拡張 USTAR サポートを実装してい ない以前のバージョンの z/OSpax または tar、あ るいは z/OS システム以外のバージョンの pax または tar の いずれかを使用してアーカイブを処理する場合には、特殊ヘッダー・ファイ ルは認識されないので、不明タイプの通常ファイルとして処理されることに なります。 抽出時には、すべてのファイルが同じ名前を持っているので、抽出されるそれぞれの特殊ヘッダー・ファイルは、直前の特殊ヘッダー・フ ァイルをオーバーレイし、特殊ヘッダー要約ファイルは復元される最後の ものになります。

特殊ヘッダー要約ファイルの例については、USTAR アーカイブ・フォーマット を参照してください。

ファイル・タグおよび -o noext の使用

ファイル・タグ情報を格納するのに特殊ヘッダーが必要となるため 、–o noext オプションを指定すると、ファイル・タグ情報の 保存と復元が使用不可となります。–o noext オプションは、 アーカイブ書き込みのデフォルトです。特殊ヘッダーに情報を保管するには、–o saveext または _OS390_USTAR=Y 環境変数 を使用する必要があります。–o noext を使用すると、各ファイルはあたかも タグ付け解除されているかのように扱われます。すなわち、–o noext を指定すると、格納または抽出されたファイルはタグ付け解除状態に設定されます。そのファイルの以前の ファイル・タグ設定に関係なく設定されます。

–o noext は、特殊ヘッダーと共に保存されたすべての属性を使用不可にします。 このため、このオプションは、テキスト・フラグ情報の保存と復元を 選択的に使用不可にするのには使えません。これを行うには、chtag を使用する必要があります。

–o noext は、 ファイルの自動変換には影響を与えません。 ファイルの読み取り、書き込み、およびコピーに pax を使用する場合、自動変換は –o noext が指定されているどうかに関係なく 使用不可になります。

自動変換とファイル・タグについての詳細は、「z/OS UNIX System Services 計画」を参照してください。

アクセス制御リスト (ACL) に対する pax サポート

アーカイブの書き込みまたは作成
ACL データは、–o saveext オプション、または _OS390_USTAR=Y 環境変数のいずれかが使用されている場合に、 特殊ヘッダーを用いて USTAR フォーマットのアーカイブに保管されます。OS390 フォーマット (-x os390 オプション) は、ACL を含むすべての特殊ヘッダー情報を自動的に保存します。

pax –o noext を使用して特殊なヘッダーの作成を 無効にすることができます。このオプションを使用すると、pax が ACL データ、およびファイルのタグ・データや 長いリンク名などの標準以外の情報を格納しないようにすることが できます。ただし、ACL データだけの格納を無効にする オプションはありません。

アーカイブの読み取りまたは復元
デフォルトでは、アーカイブからのファイルの読み取りまたは 復元時に、ACL データは復元されません。ただし、pax –p A を使用して、ACL データを復元することができます。また、pax -p e (すべてのファイル属性を復元する) を 使用しても、ACL データを復元することができます。
アーカイブのコピー
ファイルをアーカイブにコピーするときに ACL を保存する必要が ある場合には、pax -p A または pax -p e を 使用しなければなりません。
アーカイブのリスト (目次)
詳細出力 (pax -v) では、拡張 ACL エントリーの付いた すべてのファイルについて、+ が ファイル許可ビットの最後に追加されます。アクセス制御リストの詳細については、「z/OS UNIX System Services 計画」を参照してください。

pax コマンドの例

アーカイブのリスト (目次)

file2 および dir1 が、拡張 ACL エントリーを持っているとします。
> pax -vf acldata.pax
-rwx------   1 STIERT   SHUT      294912 Nov  9 09:57 file1
-rwx------+  1 STIERT   SHUT      294912 Nov  9 09:57 file2
drwxr-xr-x+  2 STIERT   SHUT        8192 Mar 20  2000 dir1/

アーカイブへの書き込み (作成):

  1. 次のように指定すると、現行作業ディレクトリーのすべてのファイル から /tmp/files.pax というアーカイブ・ファイルが作成されます。-v のオプションを使用すると、処理過程で追加されて行くファイルを 表示することができます。
    pax -wvf /tmp/files.pax *
    または
    pax -wvf /tmp/files.pax .

    上記の 2 つの形式の違いは、後者の例 (. を使用している) では、 アーカイブに記録される名前の前に "./" が付きます。これにより、現行 作業ディレクトリーおよび現行作業ディレクトリー内の隠しファイルの 属性が組み込まれ、保存されます。

  2. 上記のどちらのコマンドも圧縮したアーカイブ・ファイルを例 1 で作成します。
    pax -wzvf /tmp/files.pax.Z  * 
    または
    pax -wzvf /tmp/files.pax.Z  .

    一部のインスタンスでは、最初に圧縮されていない pax アーカイブを作成し、 次にアーカイブに対して compress コマンドを使用することによって、 より小さく圧縮された出力アーカイブを取得することができます。例えば、次のとおりです。

    pax -wvf /tmp/files.pax *
    compress /tmp/files.pax
  3. 以下の例のように指定すると、現行ディレクトリーのファイルとディレクトリー名だけが 入ったアーカイブ /tmp/dironly.pax (サブディレクトリーの 内容は含まない) が作成されます。
    pax -wdvf /tmp/dironly.pax.  *
  4. この例は現行ディレクトリーのすべての c ファイルが入った アーカイブ /tmp/cfiles.pax が作成されます。
    pax -wvf /tmp/cfiles.pax  *.c
  5. この例は現行ディレクトリーのすべての c ファイルとサブディレクトリーが入った アーカイブ /tmp/allcfiles.pax が作成されます。
    pax -wvf /tmp/allcfiles.pax  $(find . -name "*.c")
  6. この例では、現行ディレクトリーにある ASCII に変換されたすべての .c および .h ファイルを使用して、アーカイブ /tmp/ascii_src.pax を作成します。
    pax -wv -o to=ISO8859-1 -f /tmp/ascii_src.pax  *.[ch]
  7. 以下の例のように指定すると、過去 10 日間アクセスされていないシステム上のすべてのファイルが入った圧縮アーカイブ /u/smith/oldfiles.pax.Z が作成されます。
    pax -wvzf /u/smith/oldfiles.pax.Z   $(find / -type f -atime +10)
  8. 以下の例のように指定すると、ディレクトリー sub1 に保管されているファイルがすべて入ったアーカイブ /tmp/basename.pax が作成されます。このとき、これらのファイルの各コンポーネントの名前からは、sub1/ が削除されます。ポンド記号 # は、オプション –s の区切り文字として使用します。
    pax -wv -s#sub1/## -f /tmp/basename.pax  sub1/*  

アーカイブの読み取り:

  1. 変更の始まりファイル・フォーマット、拡張属性、およびファイル・タグの情報を出力するには、次のように入力します。
    >pax -vf archive.pax -o listopt='%(ZOS.filefmt)s' -o listopt='%(ZOS.extattr)s' ¥
       >-o listopt='%(ZOS.taginfo)s' args.c  
       nl--s-1 1047args.c
    変更の終わり
  2. この例では、アーカイブ source.pax からすべてのコンポーネントを取り出します。オプションの –v を使用して、取り出し過程のファイルやディレクトリーを表示させます。
    pax -rvf source.pax
  3. source.pax 内のすべてのファイルを取り出し、それらを ASCII から EBCDIC に変換するには、次のように入力します。
    pax -ofrom=ISO8859-1,to=IBM-1047 -rf source.pax
  4. アーカイブ source.pax の中から、.h で終わるすべてのファイルを取り出すには、次の ように入力します。
    pax -rf source.pax  `pax -f source.pax | grep h$`
    この例ではコマンド置換を使用して、最初にアーカイブを読み取り、アーカ イブの中から、/ で終わるすべてのファイルのリス トを生成します。
  5. この例では、ファイルを、それらがアーカイブ内で保管されているディ レクトリーとは異なるディレクトリーに取り出します。アーカイブ source.pax に保管されているすべてのファイルの名前はルート・ディレクトリー (/) で始まるものと想定しています。それらを /newroot/ に 取り出すには、次のコマンドを使用します。
    pax -rvf source.pax -s#/#/newroot/#
    –v オプションは、取り出しているファイルの名前を示すために使 用したもので、必須ではありません。
  6. 以下の例では、アーカイブ acldata.pax には file1file2、 および dir1 が含まれます。 file1 には ACL データがありません。 file2 にはアクセス ACL があります。 dir1 には、ファイル・デフォルト ACL、ディレクトリー・デフォルト ACL、およびアクセス ACL があります。 オプション –f だけを指定すると、出力は以下のようになります。
    > pax -f acldata.pax
    file1
    file2
    dir1
    –o A も指定すると、ACL 情報は以下のように 表示されます。
    > pax -o A -f acldata.pax
    file1
    file2
    user:WELLIE2:rw-
    group:SYS1:rwx
    dir1
    最後に、詳細オプション –v を追加すると、ファイルと関連したファイル許可ビット設定が 以下のように表示されます。
    > pax -o A -vf acldata.pax
    -rwx------   1 STIERT   SHUT      294912 Nov  9 09:57 file1
    -rwx------+  1 STIERT   SHUT      294912 Nov  9 09:57 file2
    user:WELLIE2:rw-
    group:SYS1:rwx
    drwxr-xr-x+  2 STIERT   SHUT        8192 Mar 20  2000 dir1/
    user:RRAND:rwx
    user:WELLIE2:rw-
    group:SHUT:rwx
    fdefault:user:RRAND:rwx
    fdefault:group:SHUT:r-x
    default:user:ANGIEH:rwx
    default:group:SYS1:r--
    pax -o A を指定しても、詳細な目次形式は自動的にオンになりません。ファイルと関連したファイル許可ビット設定を表示するには、-v も指定する必要があります。例えば、file2dir1 が ACL を持っているときに、ファイルが ACL を持っているかどうかをチェックするには、次のようにします。
    >
     pax -vf acldata.pax
    -rwx------   1 STIERT   SHUT      294912 Nov  9 09:57 file1
    -rwx------+  1 STIERT   SHUT      294912 Nov  9 09:57 file2
    drwxr-xr-x+  2 STIERT   SHUT        8192 Mar 20  2000 dir1/

    アクセス制御リストの詳細については、「z/OS UNIX System Services 計画」を参照してください。

    OS390 アーカイブ・フォーマットを使用して ACL を持つファイルを保存するには、以下のようにします。

    > pax -o os390 -wf acldata.pax fileAcls

ファイル

/tmp/OS390_USTAR_SUMMARY_
timestamp は、z/OS 拡張 USTAR 特殊ヘッダー・ファイルです。詳細は、z/OS 拡張 USTAR サポートを参照してください。

環境変数

pax は、以下の環境変数を使用します。
_UNIX03
このコマンドでの _UNIX03 の効果について詳しくは、UNIX03 用に変更されたシェル・コマンドを参照してください。

ローカライズ

pax は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_COLLATE
  • LC_CTYPE
  • LC_MESSAGES
  • LC_TIME
  • LC_SYNTAX
  • NLSPATH

詳しくは、ローカライズを参照してください。

pax の終了値

0
正常終了
1
以下のいずれかの理由による失敗
  • オプションが正しくない
  • コマンド行の引数が正しくない
  • メモリー不足
  • 圧縮エラー
  • 抽出の失敗
  • 作成の失敗

変更の始まりpax は、読み取り時に特定のファイルを抽出できなかったり、書き込み時に特定のファイルを検出できなかったり、サポート対象外のファイル・タイプを持つファイルを書き込み時に検出したりすると、エラー・メッセージを生成し、他のファイルの処理を続けますが、状況 1 を返します。それ以外のエラーが発生した場合、pax はそれ以上の処理を試みずに直ちに終了します。変更の終わり

書き込み操作の後、以下のメッセージが出された場合、
If you want to go on, type device/filename when ready

これは、アーカイブ・ファイルが入っているディレクトリーまたはデバイスが いっぱいであることを示しています。継続するには、新規ディレクトリーの名前を入力し、pax を終了するには、<Ctrl-C> を入力します。

読み取り操作の後、このメッセージが表示された場合は、指定したアーカイブ・ファイルを pax が見つけられなかったか、損傷していたことを意味します。この場合は、<Ctrl-C> を入力して操作を終了し、正しいアーカイブ名を指定して pax を再始動してください。

移植性

POSIX.2, X/Open 移植性ガイド.

–L–q–V–E–p x、および –z オプションは、POSIX 標準の拡張です。

関連情報

compresscpiolstaruncompress

regexp の詳細は、正規表現 (regexp)を 参照してください。

ファイル・フォーマットcpio および pax ファイル・フォーマットを参照してください。