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
説明
アーカイブ・ファイルのメンバー・ファイルのリスト (リスト・モード)
-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_IRWXU、S_IRWXG、S_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 パラメーターは、以下のいずれかの値を受け入れます。
|
-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 内で上記以外の % 文字を使用すると、未定義の結果が生じます。 このキーワードと値の組が -o Options リストで指定されていない場合、その名前のデフォルト値は次のようになります。 %d/PaxHeaders/%f globexthdr.name=string (-x pax フォーマットのみに適用されます。) pax は、該当のオプションを指定した書き込みモードまたはコピー・モードで使用されると、以前のバージョンの pax によって正規ファイルとして扱われる、ustar ヘッダー・ブロックを含んだグローバル拡張ヘッダー・レコードを作成します。 このキーワードによって、ユーザーが、グローバル拡張ヘッダー・レコードの ustar ヘッダー・ブロック内に書き込まれる名前を制御できます。 この名前は、次の文字置換が行われた後の string の内容です。
string 内で上記以外の % 文字を使用すると、未定義の結果が生じます。 このキーワードと値の組が -o Options リストで指定されていない場合、その名前のデフォルト値は次のようになります。 $TMPDIR/GlobalHead.%n ここで、$TMPDIR は TMPDIR 環境変数の値、または TMPDIR が設定されていない場合は /tmp です。 invalid=action (-x pax フォーマットのみに適用されます。) このキーワードによって、ユーザーが、次の状態の拡張ヘッダー・レコード内で値を検出したときに pax が取るアクションを制御できます。
|
項目 | 説明 |
---|---|
-o Options (続き) | pax は次の無効値を認識します。
次に示す、action 引数の相互排他的な値がサポートされています。
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 つずつ組み込みます。
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 は、読み取りモードまたはリスト・モードで使用すると、次のシーケンスでファイル属性を判別します。
- -o delete=keyword-prefix が使用される場合、影響を受ける属性は、ステップ (7) が適用可能であればこのステップから判別されます。使用されない場合は無視されます。
- -o keyword:=NULL が使用される場合、影響を受ける属性は無視されます。
- -o keyword:=value が使用される場合、影響を受ける属性には値が割り当てられます。
- ファイル特定の拡張ヘッダー・レコードに value が存在する場合、影響を受ける属性には値が割り当てられます。 拡張ヘッダー・レコード同士が競合する場合、ヘッダー内で最後に指定されたものが優先されます。
- -o keyword=value が使用される場合、影響を受ける属性には値が割り当てられます。
- グローバル拡張ヘッダー・レコードに値が存在する場合、影響を受ける属性には値が割り当てられます。 グローバル拡張ヘッダー・レコード同士が競合する場合、グローバル・ヘッダー内で最後に指定されたものが優先されます。
- 上記以外の場合、属性は、ustar ヘッダー・ブロックから判別されます。
項目 | 説明 |
---|---|
-p String | 取り出すときに保存するかまたは破棄する 1 つまたは複数のファイル特性を指定します。
String パラメーターは、文字 a、e、m、o、p で構成されます。
同一文字列内で複数の特性を組み合わせることができ、複数の -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 | 同じ名前を持つ既存のファイルまたはアーカイブ・メンバーより古いファイルを無視します。
|
-v | プロセスに関する情報を書き込みます。 -r フラグも -w フラグも指定しない場合は、-v フラグが詳細な目次を作成します。そうでなければ、アーカイブ・メンバー・パス名が標準エラーに書き込まれます。 |
-w | 指定されたアーカイブ・フォーマットで標準出力へファイルを書き込みます。 |
-x Format | ustar であるデフォルト・フォーマットを使って、出力アーカイブ・フォーマットを指定します。pax コマンドは、以下のフォーマットを認識します。
既存のアーカイブ・フォーマットとは異なるフォーマットでアーカイブ・ファイルを追加しようとすると、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() で説明されたフォーマット文字列として使用されますが、次の例外があります。
- シーケンス keyword は、フォーマット変換指定子の前に置くことができます。
変換引数は、keyword の値によって定義されます。
サポートされるキーワードは次のとおりです。
- ustar および cpio ヘッダー・ブロックの任意のフィールド名エントリー。
- 拡張ヘッダーに定義された任意のキーワード、または拡張ヘッダー内の拡張として提供された任意のキーワード。
例えば、シーケンス %(charset)s は、拡張ヘッダー内の文字集合の名前の文字列値です。
キーワード変換引数の結果は、末尾 NULL のない、適用可能ヘッダー・フィールドまたは拡張ヘッダーからの値です。
変換引数として使用されるキーワードと値の組はすべて、UTF8 エンコードから、適用可能なローカル・ファイルシステム、ユーザー・データベースなどに適した文字集合に変換されます。
- 追加の変換文字 T は、時刻形式を指定します。 T 変換文字の前にはシーケンス keyword=subformat を付けることができます。この場合、subformat は、date コマンドによって許可された日付形式です。 デフォルト・キーワードは mtime で、デフォルト・サブフォーマットは %b %e %H:%M %Y です。
- 追加の変換文字 M は、ls -l コマンドによって表示されるファイル・モード文字列を指定します。 keyword を省略すると、mode キーワードが使用されます。 例えば、%.1M は、ls -l コマンドの entry type フィールドに対応する 1 文字を書き込みます。
- 追加の変換文字 D は、ブロックまたはスペシャル・ファイルが適用可能であれば、そのデバイスを指定します。 これが適用可能でない場合に keyword を指定すると、この変換は %keyword u と同じになります。適用可能でない場合に keyword を指定しないなら、この変換は <スペース> と同じになります。
- 追加の変換文字 F は、パス名を指定します。
F 変換文字の前には、コンマで区切られたキーワードのシーケンスを付けることができます。
keyword,keyword...
null でない全キーワードの値は連結され、それぞれが / で区切られます。 デフォルトは、キーワード・パスが定義されている場合は path です。 それ以外の場合、デフォルトは prefix,name です。
- 追加の変換文字 L は、シンボリック・リンク拡張を指定します。
現在のファイルがシンボリック・リンクである場合、%L は次のように拡張されます。
"%s -> %s", value_of_keyword, contents_of_link
シンボリック・リンクでない場合、%L 変換文字は %F と同じです。
終了状況
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |
セキュリティー
RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権操作を実行できます。特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例
- olddir ディレクトリー階層を newdir にコピーするには、以下のように入力します。
mkdir newdir
pax -rw olddir newdir
- 現行ディレクトリーの内容をテープ・ドライブにコピーするには、以下のように入力します。
pax -wf /dev/rmt0
- ファイル xxx を XXX としてアーカイブし、正常に置き換えられたものを表示するには、以下のいずれかのコマンドを入力します。
pax -wvf/dev/rfd0 -s /xxx/XXX/p xxx
pax -wvf/dev/rfd0 -s/x/X/gp xxx
- 標準入力からファイルを読み、指定したサイズでデータ・ストリーム・ファイルにダンプするには、以下のように入力します。
dd if=/dev/hd6 bs=36b count=480 | pax -wf /dev/rfd0 -o datastream=_filename_,datastr_size=_size_
- アーカイブ pax.ar の中のファイルを指定した形式でリスト表示するには、次のように入力します。
pax -v -o listopt="start %F end" -f pax.ar
- pax 形式のアーカイブ pax.ar を作成するには、次のように入力します。
pax -wf pax.ar -x pax file1
- pax 形式のアーカイブ pax.ar から新しいパスにファイルを抽出するには、次のように入力します。
pax -rvf pax.ar -x pax -o path=newfilename
- シンボリック・リンクの内容を、ソースから宛先にコピーするには、次のように入力します。
pax -rwL srclink destdir
- アーカイブからグループ名
bin
のファイルを抽出するには、次のように入力します。pax -rvf pax.ar -x pax -o gname=bin
- pax 形式のアーカイブからの抽出において、パス名を無視するには、次のように入力します。
pax -rvf pax.ar -o delete=path
- アーカイブの作成時に、長いユーザー名およびグループ名が切り捨てられないようにするには、
次のように入力します。
pax -wEf file.pax file
olddir
ディレクトリー階層を、ファイルに関連する ACL および EA 付き でnewdir
にコピーするには、次のように入力します。mkdir newdir pax -rUw olddir newdir
ファイル
項目 | 説明 |
---|---|
/usr/bin/pax | pax コマンドが入っています。 |