The Wayback Machine - https://web.archive.org/web/20070120112320/http://docs.hp.com:80/ja/B2355-90851/pax.1.html
本文に進む 日本-日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 1 : ユーザーコマンド (N~Z) > p

pax(1)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

pax ― アーカイブファイルの抽出、書き込み、およびリスト

構文

アーカイブファイルのメンバーファイルのリスト

pax [-cdnv] [-f archive] [-s replstr ] ... [pattern ...]

アーカイブファイルの抽出

pax -r [-cdiknuvy] [-f archive] [-p string ] ... [-s replstr ] ... [pattern ...]

アーカイブファイルの書き込み

pax -w [-adituvXy] [-b blocking] [-f archive] [-s replstr ] ... [-x format] [file ...]

ファイルのコピー

pax -r -w [-diklntuvXy] [-p string ] ... [-s replstr ] ... [file ...] directory

説明

pax コマンドは、アーカイブファイルのメンバーファイルの抽出と書き出し、 アーカイブのメンバーファイルのリストの書き出し、およびディレクトリ構造のコピーを行います。 -r フラグおよび -w フラグは、 pax コマンドが行うアーカイブ操作を指定します。

pattern 引き数は、アーカイブメンバーの 1 つ以上のパスと一致するパターンを指定します。 pattern 引き数内の \ (バックスラッシュ) 文字は認識されず それに続く文字が特殊な意味を持つのを抑止します。 pattern 引き数が指定されていなければ、 アーカイブのすべてのメンバーが選択されます。

pattern 引き数が指定されているが指定されたパターンに一致するアーカイブメンバーが みつからなければ、 pax コマンドは、エラーを検出し、ゼロ以外の終了ステータスで終了し、 診断メッセージを書き出します。

pax コマンドは、 tar および cpio アーカイブを読むことができます。 cpio の場合、これは、 pax が ASCII アーカイブ ( cpio  -c で作られる)、およびバイナリーアーカイブ ( -c フラグなしで作られる) を読めることを意味します。 サポートされるアーカイブフォーマットは、入力時に自動的に検出されます。

pax は、 tar および cpio が読めるアーカイブを書くこともできます。デフォルトで、 pax は、アーカイブを ustar 拡張 tar 交換フォーマットで書きます。 pax は、 ASCII cpio アーカイブも書きます。 -x cpio フラグを使用してこの拡張 cpio 出力フォーマットを指定します。

オプション

-a  

アーカイブの終りにファイルを追加します。装置によっては追加を サポートしないものがあります。

-b blocking 

出力用のブロックサイズを blocking 引き数で指定した正の 10 進整数バイトとします。 ブロックサイズの上限は 32,256 です。ブロッキングは、入力時に自動的に決まります。

blocking 引き数として 32768 を越える値を指定しないでください。アーカイブ作成時のデフォルト のブロッキングは、アーカイブのフォーマットによって異なります。 ( -x フラグの説明を参照してください。)

-c  

pattern または file 引き数で指定したものを除いてすべてのファイルまたはアーカイブメンバーを一致させます。

-d  

コピーまたはアーカイブするディレクトリ、または抽出するディレクトリが そのディレクトリまたはアーカイブされたディレクトリ自身とだけ一致し、 ディレクトリまたはアーカイブされたディレクトリの内容とは一致しないようにします。

-f archive 

標準入力 ( -w フラグが指定されている場合) または標準出力 ( -w フラグが指定されているが -r フラグが指定されていない場合) の代わりに使用するアーカイブファイルのパスを指定します。 -a フラグとともに指定された場合、アーカイブに書き出されるファイルは アーカイブの最後に追加されます。

-i  

対話式にファイルまたはアーカイブの名前を変えます。 pattern 引き数と一致する各アーカイブメンバーまたは file 引き数と一致する各ファイルに対して、ファイルまたはアーカイブメンバーの名前を含む ターミナルに (/dev/tty) プロンプトが書かれます。 その後ターミナルから 1 行読み込まれます。この行が空ならば、ファイルまたは アーカイブメンバーはスキップされます。この行がドットで構成されているならば、 ファイルまたはアーカイブメンバーは、名称変更せずに処理されます。 その他の場合、名前は行の内容で置き換えられます。 pax コマンドは、応答を読む際に End-of-File に到達するか ターミナルへの読み書きができなければ 直ちにゼロ以外の終了ステータスで終了します。

-k  

pax コマンドが既存のファイルを上書きするのを防ぎます。

-l  

ファイルをコピーするときファイルをリンクします。 -r-w が両方指定されていれば、可能なときは必ずコピー元とコピー先 ファイル構造の間でハードリンクが行われます。

-n  

pattern 引き数に一致する最初のアーカイブメンバーを選びます。 各パターンに対して 1 つのアーカイブメンバーだけが突き合わされます。 (ただし、タイプディレクトリのメンバーは、そのファイルがルートのファイル構造 とは一致します。)

-p string 

抽出時に保持するか破棄する 1 つ以上の ファイル属性を指定します。 string 引き数は、 文字 a, e, m, o, および p で構成されています。 複数の属性を同じ文字列内に続けて指定することができ、 複数の -p フラグを指定することができます。 フラグの意味は次のとおりです。

a  

ファイルアクセス時間を保持しません。

e  

ユーザー ID、グループ ID、アクセスパーミッション、アクセス時間、および変更時間を 保持します。

m  

ファイル変更時間を保持しません。

o  

ユーザー ID およびグループ ID を保持します。

p  

アクセスパーミッションを保持します。

「保持」とは、起動プロセスのパーミッションが許せばアーカイブに保存されている属性が 抽出ファイルに与えられることを意味します。許されなければ、属性は通常のファイル作成 処理の一部として決定されます。

e フラグも o フラグも指定されていないか、 ユーザー ID およびグループ ID が保持されなければ pax コマンドは、アクセスパーミッションの S_ISUID および S_ISGID ビットを設定しません。 これらいずれかの項目の保持が失敗すると pax コマンドは標準エラーに診断メッセージを書き出します。いずれかの項目の保持に失敗すると 終了状況に影響しますが、抽出されたファイルが削除されることはありません。 指定フラグが重複するか互いに矛盾する場合、最後に指定したものが有効となります。 例えば、 -p eme と指定した場合、ファイル変更時間が保持されます。

-r  

標準入力からアーカイブファイルを読み込みます。

-s  

pattern または file 引き数で指定したファイルメンバーまたはアーカイブメンバー名を ed コマンドの構文を使用して 置換表現 replstr に従って変更します。 置換表現のフォーマットは次のとおりです。

-s/old/new/
[gp]

ここで old は、 ed と同じように基本正規表現で new は、 & (アンパーサンド)、 \n n は数字) 後方参照、またはサブ表現一致 を含むことができます。 old 文字列は、行送り文字を含むこともできます。

ヌル以外の任意の文字をデリミタとして使用することができます。(以前のフォーマットでは、 / (スラッシュ) がデリミタでした。) 複数の -s フラグ表現を指定することができます。表現は指定順に適用され、最初に失敗した 置換で終了します。オプションの後続文字 g は、 ed コマンドの場合と同じ働きをします。オプションの後続文字 p は、成功した置換を標準エラーに書き出します。 アーカイブの読み書き時には、空の文字列に置き換えられる ファイルメンバー名またはアーカイブメンバー名は無視されます。

-t  

アーカイブファイルのアクセス時間を pax コマンドで読む前の時間と同じにします。

-u  

同名の既存のファイルまたはアーカイブメンバーよりも古い (変更時間が より古い) ファイルを無視します。

ファイルの抽出時 ( -r フラグ)、アーカイブメンバーがファイルより新しければ ファイルシステム内のファイルと同じ名前のアーカイブメンバーが抽出されます。

アーカイブファイルへ書き出し時 ( -w フラグ)、アーカイブメンバーよりファイルが新しければ ファイルシステム内のファイルと同じ名前のアーカイブメンバーが上書きされます。

コピー先ディレクトリへファイルをコピーする際 ( -rw フラグ)、コピー元構造のファイルがより新しければ、コピー先構造内のファイルは、 コピー元構造のファイルまたはコピー元構造内のファイルへのリンク で置き換えられます。

-v  

プロセスに関する情報を書き出します。 -r フラグも -w フラグも 指定されていなければ -v フラグは、 ls -l の出力に似た冗長目次を作ります。 いずれかのフラグが指定されていれば、アーカイブメンバーのパス名が標準エラーに書き出されます。

-w  

ファイルを指定したアーカイブフォーマットで標準出力に書き出します。

-x format 

出力アーカイブフォーマットを指定します。 pax コマンドは、次のフォーマットを認識します。

cpio  

拡張 cpio 交換フォーマット。文字特殊アーカイブファイルのこのフォーマットの デフォルトのブロッキング値は 5120 です。 512 間隔で 512 から 32,256 までのブロッキング値がサポートされています。

ustar  

拡張 tar 交換フォーマット。これは、デフォルトの出力アーカイブフォーマットです。 文字特殊アーカイブファイルのこのフォーマットのデフォルトのブロッキング値は 10240 です。 512 間隔で 512 から 32,256 までのブロッキング値がサポートされています。

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

-X  

パス名で指定されるファイル構造をたどる場合、 pax コマンドは、異なる装置 ID を持つディレクトリへは降りません。

-y  

各ファイルの処置を対話式にプロンプトします。 -s フラグで指定される置換は、 処置のプロンプトが出る前に行われます。 EOF マーカ、または文字 q で始まる入力行は、 pax を終了します。その他の場合、 y 以外で始まる入力行ではファイルが無視されます。 このフラグは、 -i フラグと一緒に使用することはできません。

オプションの相互作用と処理順序

ファイルまたはアーカイブメンバーの名前に作用するフラグ ( -c, -i, -n, -s, -u, および -v) には次の相互作用があります。

ファイルを抽出する際 (-r フラグ)、 -c, -n, および -u フラグで変更されたユーザー指定パターン引き数に従って、 変更された名前を使用してアーカイブメンバーが選択されます。 そして、 -s-i フラグがあればその順に選択されたファイルの名前が変更されます。 -v フラグは、これら変更の結果得られる名前を書き出します。

アーカイブファイルへファイルを書く際 (-w フラグ)、またはファイルをコピーする際、 ファイルは、 -n および -u フラグで変更されたユーザー指定パス名に従って選択されます。 その後、 -s および -i フラグがあれば、それらはその順にこれら変更の結果得られる名前を変更します。 -v フラグは、これらの変更の結果得られる名前を書き出します。

-u フラグと -n フラグの両方を指定した場合、 pax コマンドは、ファイルが比較対象のファイルより新しくなければ そのファイルが選択されたとみなしません。

アーカイブファイルのメンバーファイルのリスト

-r フラグおよび -w フラグが指定されていなければ、 pax コマンドは、標準入力から読み込んだ指定したパターンに一致するパス名を持つ アーカイブファイルのメンバーの名前を標準出力に書きます。 指定されたファイルがディレクトリならば、ディレクトリに含まれるファイル構造も書かれます。 pax コマンドは、 -r および -w フラグを使用せず、 -c, -d, -f, -n, -s, および -v フラグを使用し、 pattern 引き数を使用して指定することができます。

-r フラグおよび -w フラグを使用しない場合、 pax は、指定アーカイブの内容を 1 行に 1 ファイルずつリストします。 pax は、ハードリンク パス名を次のように表示します。

pathname==linkname

pax は、シンボリックリンク パス名を次のように表示します。

pathname->linkname

上記いずれの場合にも、 pathname は、抽出するファイルの名前で linkname は、前にアーカイブに現れたファイルの名前です。

-v フラグを指定した場合、ハードリンク パス名のリストが ls -l コマンドのフォーマットで出力されます。

アーカイブファイルの抽出

-r フラグが指定されているが -w フラグが指定されていないと pax コマンドは、標準出力から読み出し、 pattern 引き数が指定されていればそれと一致するパス名を持つ アーカイブファイルのメンバーを抽出します。 抽出されたファイルがディレクトリならば、そのディレクトリに含まれる ファイル構造も抽出されます。 抽出されたファイルは、現在のファイル構造に従って作られます。 -r フラグは、 -c, -d, -f, -n, -s, および -v フラグ、および pattern 引き数とともに指定できます。

抽出されたファイルのアクセス時間と変更時間は、アーカイブファイルと同じです。 抽出されたファイルのアクセスパーミッションは、 ユーザーのデフォルトのファイル作成モードに影響されない限り アーカイブされたときと同じです。 抽出されたファイルの S_ISUID および S_ISGID ビットはクリアされます。

アーカイブメンバーを抽出するために中間ディレクトリが必要ならば、 pax コマンドは、アクセスパーミッションを S_IRWXU, S_IRWXG,および S_IRWXO オプションのビット単位の包含的 OR に設定してディレクトリを作ります。

選択されたアーカイブフォーマットがリンクされたファイルの指定をサポートする場合 ( tarcpio フォーマットは両方ともします)、 アーカイブを抽出したときこれらのファイルがリンクできなければエラーとなります。 pax は、エラーを通知して処理を続けます。

アーカイブファイルの書き出し

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

-w が指定されているがファイルが指定されていない場合、標準入力が使われます。 -f および -w が指定されていなければ、標準入力はアーカイブファイルでなければなりません。

ファイルのコピー

-r フラグおよび -w フラグが両方とも指定されている場合、 pax コマンドは、 file 引き数で指定されたファイルを directory 引き数で指定されたディレクトリへコピーします。ファイル引き数が 1 つも指定されていなければ コピーするファイルのリストが 1 行に 1 つずつ標準入力から読み込まれます。 指定されたファイルがディレクトリならば、そのディレクトリに含まれるファイル構造もコピーされます。 -r および -w フラグは、 -d, -i, -k, -l, -p, -n, -s, -t, -u, -v, および -X フラグ、および file 引き数とともに指定できます。 directory 引き数は、指定しなければなりません。

コピーされたファイルは、アーカイブに書き込んだ後抽出した場合と同じです。 ただし、元のファイルとコピーしたファイルの間にハードリンクがあるかもしれません。

戻り値

pax コマンドは、すべてのファイルが正しく処理されると 0 を戻します。それ以外の場合は pax は 0 より大きい値を戻します。

現在のディレクトリの内容をテープ装置へコピーするには、次のコマンドを指定します。

pax -w -f /dev/rmt/0m . 

ディレクトリ構造 olddirnewdir へコピーするには次のコマンドを指定します。

mkdir  newdir 
cd  olddir 
pax -rw olddir newdir 

現在のディレクトリを基準に抽出したアーカイブですべてのファイルのルートを /usr にしてアーカイブ a.pax を読むには、次のコマンドを指定します。

pax -r -s ',//*usr//*,,' -f a.pax 

上記の例は、すべてアーカイブを tar フォーマットで作ります。

次のコマンドペアは、 cpio および tar から pax への変換の例です。 いずれの場合も、例は、同一出力フォーマットの代わりに 同等のコマンド行での使用例を示します。 -x フラグは、ここで示す pax コマンドに指定して、特定の出力フォーマットを選択するためのアーカイブを作ることができます。

ls * | cpio -ocv 
pax -wdv * 
find /mydir -type f -print | cpio -oc 
find /mydir -type f -print | pax -w 
cpio -icdum < archive 
pax -r < archive 
(cd /fromdir;find . -print) | cpio -pdlum /todir 
pax -rwl /fromdir /todir 
tar cf archive * 
pax -w -f archive * 
tar xfv - < archive 
pax -rv < archive 
(cd /fromdir; tar cf - . ) | (cd /todir; tar xf -) 
pax -rw /fromdir /todir 

注記

ハードリンクがあるファイルに対して -i フラグ (ファイルの名前を対話式に変える) を使用すると、 pax は、名前が変更されたファイルへのハードリンクを作りません。

警告

業界標準の準拠および相互運用性の確立のため、 pax は 8 ギガバイトを超えるファイルまたはユーザー/グループ ID が 2048 キロバイトより大きいファイルのアーカイブはサポートしていません。 ユーザー名/グループ名が登録されていない場合、2048 キロバイトを超えるユーザー/グループ ID を持つファイルは、実行中のプロセスのユーザー/グループ ID でアーカイブおよびリストアされます。

著者

pax は Mark H. Colburn, OSF および HP によって開発されました。

参照

ed(1), tar(4)

標準準拠

pax: XPG4, POSIX.2

pax のインプリメンテーションは、 POSIX.2 draft 仕様に基づいています。 HP は、最終 POSIX.2 仕様が完成した時点でそれに準拠するよう pax をアップデートする予定です。 したがって、pax のインプリメンテーションは、HP-UX の将来リリースで変更されるでしょう。 その場合、現在のインプリメンテーションと互換性がなくなるかもしれません。 現在のインプリメンテーションは、やむをえない場合にのみ使用してください。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.