tail head cat sleep
QR code linking to this page

manページ  — PAX

名称

pax – ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う

内容

書式


pax [-cdnvz] [-f archive] [-s replstr] ... [-U user] ... [-G group] ... [ -T [from_date] [,to_date] ] ... [pattern ...]
pax -r [-cdiknuvzDYZ] [-f archive] [-o options] ... [-p string] ... [-s replstr] ... [-E limit] [-U user] ... [-G group] ... [ -T [from_date] [,to_date] ] ... [pattern ...]
pax -w [-dituvzHLPX] [-b blocksize] [ [-a] [-f archive] ] [-x format] [-s replstr] ... [-o options] ... [-U user] ... [-G group] ... [-B bytes] [ -T [from_date] [,to_date] [/[c][m]] ] ... [file ...]
pax -r -w [-diklntuvDHLPXYZ] [-p string] ... [-s replstr] ... [-U user] ... [-G group] ... [ -T [from_date] [,to_date] [/[c][m]] ] ... [file ...] directory

解説

pax ユーティリティは、 アーカイブファイルの読み込み、書きだし、アーカイブファイルに 格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを 行います。 これらの操作は指定したアーカイブフォーマットとは独立しており、 広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 pax のサポートするアーカイブフォーマット一覧は、 -x オプションの説明時に示します。

-r および -w は、以下の pax の機能モードのいずれかを指定するのに用いられます。その機能モードとは、 一覧表示モード、読み込みモード、書き込みモード、コピーモード の 4 つです。
<none>
  一覧表示モードです。 標準入力 から読み込まれたアーカイブ内の格納ファイルのリストを 標準出力 へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した pattern に一致するものが採用されます。 ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って 書き出されます。
-r
  読み込みモードです。 標準入力 からアーカイブを読み込み、その内に格納されたファイルのうち指定した pattern に一致するファイル名を持つファイルを展開します。 アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。 展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる ファイル階層は完全な形で展開されます。 展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに 生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、 そしてファイルモードの設定についての詳細は、 -p オプションのところで述べます。
-w
  書き込みモードです。 file オペランドで指定したファイル群のアーカイブを 指定したフォーマットで標準出力に書き出します。 file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 file オペランドがディレクトリの場合、そのディレクトリ配下の 全ファイルが作成されるアーカイブに含まれます。
-r -w
  コピーモードです。 ファイルオペランドで指定したファイル群を、指定した ディレクトリ にコピーします。 file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 file オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、 コピー先として指定したディレクトリ配下に作成されます。 コピーモード では、ファイルがアーカイブファイルに対して書き込まれ、 そして一方でそのアーカイブファイルが展開されるかのように見えます。 ただし、これはオリジナルファイルとコピーファイルの間に ハードリンクが張られるかも知れない事を除きます ( -l オプションを参照して下さい)。

注意: コピー先の ディレクトリ には、コピー元にあるものと同じファイル名の file オペランドや file オペランドで指定されるディレクトリ階層の配下にあるファイル名などを 指定してはいけません。 そのような場合、 コピー の結果は予測できないものになります。

読み込み 操作や 一覧表示 動作において壊れたアーカイブを処理する場合、 pax は媒体破損を可能な限り復旧し、 アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の 処理の詳細は -E オプションを参照して下さい)。

オペランド

directory オペランドは、コピー先ディレクトリの指定を行います。 directory オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、 もしくは指定したオペランドがディレクトリでない場合には、 pax は、0 以外のステータスでプログラムを終了します。

pattern オペランドは、アーカイブに格納されているファイルの名前を選択するために 用いられます。 アーカイブメンバは、 fnmatch(3) に記述のある表記に一致するパターンを用いて選択されます。 pattern オペランドが指定されない場合には、アーカイブ内に格納されている 全てのメンバが選択されます。 pattern がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に 位置する全てのファイルが選択されます。 もしアーカイブ内に pattern オペランドの指定と一致する名前のファイルがない場合には、 pax標準エラー出力 に出力される診断メッセージにこの pattern オペランドを書き出し、0 以外のステータスでプログラムを終了します。

file オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。 file オペランドが 1 つもアーカイブメンバを選択しない場合には、 pax 標準エラー出力 に出力される診断メッセージにこの file オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。

オプション

pax では、以下のオプションが使用可能です。
-r
  アーカイブファイルを 標準入力 から読み込み、 files で指定したファイルを展開します。 アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、 これらのディレクトリは、 mkdir(2) の mode 引数のところに S_IRWXU, S_IRWXG, S_IRWXO 論理和 を指定して呼び出された場合と同様に作成されます。 選択されたアーカイブ形式がリンクファイルの指定をサポートし、 かつアーカイブ展開時にリンク不可能である場合には、 pax は、処理が終了する時に、診断メッセージを 標準エラー出力 に書き出し、0 以外のステータスで終了します。
-w
  指定したアーカイブフォーマットで、 標準出力 にアーカイブを書き出します。 file オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを 記述したリストを 標準入力 から読み込みます。 このリストの各行の先頭や末尾には <空白> を入れてはいけません。
-a
  すでに存在するアーカイブファイルの後ろに、ファイル files を追加書き込みします。 -x オプションによるアーカイブフォーマット指定がされない場合、 アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの フォーマットと同一になります。 アーカイブファイルに対して、そのアーカイブファイルのフォーマットと 異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、 pax は即時に 0 以外の終了ステータスでプログラム終了します。 アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、 残りのアーカイブボリュームのブロックサイズとします。

注意: 多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。 そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、 アーカイブの破損もしくは他の予期せぬ結果を招くことになります。 特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない ものです。 普通のファイルシステムのファイルとして、もしくはディスクデバイス上に 保存されているアーカイブについては、通常は追加書き込み処理をサポートします。

-b blocksize
  アーカイブを 書き出す 際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数 でブロック化します。 blocksize で指定出来る値は、512 の倍数でなくてはならず、最大は 64512 です。 32256 バイトより大きい場合 POSIX 標準違反であり、全システムで可搬であるわけではありません。 blocksize で指定する数は、その最後に k もしくは b を付加することで、1024(1K) もしくは 512 の倍数として指定できます。 blocksizes に指定する数字を x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 アーカイブの書き込みのために指定するデバイスによっては、 ブロックサイズに対してさらに制限がかかることがあります。 ブロック化が指定されない場合には、デフォルトの blocksize は使用される特定のアーカイブフォーマットに依存します。 ( -x オプションを参照して下さい)。
-c
  pattern に指定されたパターンにマッチしたファイルおよび file オペランドで指定されたファイル 以外 の、全てのファイルもしくはアーカイブ内メンバにマッチします。
-d
  コピーもしくはアーカイブされるディレクトリ、もしくはアーカイブに格納され ているディレクトリについて、指定パターンに一致した名前のディレクトリもし くはアーカイブ内に格納されているディレクトリのみ処理し、そのディレクトリ 配下にあるファイルについては処理しません。
-f archive
  archive で指定したファイルを入力元のアーカイブもしくは出力先のアーカイブに指定し ます。この場合、デフォルトの 標準入力 ( 一覧表示モード および 読み込みモード の場合) もしくは 標準出力 ( 書き込みモード ) については無視されます。 1 つのアーカイブが複数のファイルもしくは異なるアーカイブデバイスに渡って も構いません。必要があった場合、 pax は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの パス名の入力を促します。
-i
  対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。 pattern で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは file オペランドの指定に一致するファイルについて、 pax /dev/tty に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して 入力を促します。 それから pax ユーティリティは /dev/tty からデータを 1 行読み込みます。 その行が空行だった場合には、その時のファイルもしくはアーカイブ内の 格納ファイルについては、処理を行いません。 その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。 それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。 上記操作中に <EOF> /dev/tty から受けとった場合、もしくは何らかの理由で /dev/tty をオープン出来なかった場合、 pax ユーティリティは 0 以外の終了ステータスで即座に終了します。
-k
  すでに存在するファイルに対する上書きをしません。
-l
  (アルファベットの ``エル'') ファイルをリンクします。 コピーモード ( -r -w) の場合には、コピー元コピー先間には可能な限りハードリンクが作成されます。
-n
  アーカイブに格納されるファイルのうち、各 pattern オペランドに指定した文字列パターンに一致するファイル名を持つ最初のものを 選択します。 アーカイブに格納されるファイルのうち pattern オペランドに指定した文字列パターン に一致するもので、2 つめ以降のものは選択されません。 文字列パターンで指定した条件に合致するものがディレクトリだった場合、 そのディレクトリ配下のファイルについても選択されたものとみなされます(ただし、 -d オプションが指定された場合にはこの限りではありません)。
-o options
  -x で指定されるアーカイブフォーマットから特定される、 アーカイブファイル展開/書き出しアルゴリズムの更新情報を指定します。 一般的に、 options name=value のように指定されます。
-p string
  1 つ以上のファイルの属性操作に関する動作をオプション指定します。 string オプション引数は、ファイル展開時に、展開ファイルの属性を保存するか破棄す るかを指定する文字列です。 string は、 a, e, m, o, p の 5 つの指定文字から成ります。 複数の属性を同じ文字列の中につなげて記述したり、複数の -p オプションを指定したりすることもできます。 これらの文字は、以下のように動作の指定を行います:
a ファイルのアクセス時間を保存しません。 デフォルトでは、ファイルのアクセスタイムは可能な限り保存されます。
e ファイルのユーザ ID, グループ ID, ファイルモードのビット、ファイルの アクセス時間、ファイルの更新時間、これらの '全ての属性を保存します。' 本オプションは、 スーパユーザ、 もしくは適正な権限を持ったユーザによって 使用されることを推奨します。 これは、アーカイブ内に格納されたすべてのファイルについて、 そのファイルの特性を保存するためです。 フラグを指定した場合は、 o および p フラグを指定したのと同様の効果を持ちます。
m ファイルの更新時間を保存しません。 デフォルトでは、ファイルの更新時間は可能な限り保存されます。
o ユーザ ID とグループ ID を保存します。
p ファイルモードのビットを '保存します。' 本オプションは、 ファイルについて、所有者情報以外の全ての情報の保存を希望するなど適正な 権限を持った ユーザ に使用されることを推奨しています。 ファイルの時刻はデフォルトで保存されますが、 これを無効にしたり、展開時の時刻を用いるようにするために 別に 2 つのフラグが用意されています。

先述のオプション一覧にて、 '属性の保存' とは、起動したプロセスの権限に応じて アーカイブ内に保存された属性が展開ファイルに反映されることを意味します。 これ以外の場合は、展開されるファイルの属性は、 通常のファイル生成と同様に決定されます。 e o のどちらも指定されない場合、あるいは ユーザ ID とグループ ID がいかなる理由にせよ保存されない場合、 pax はファイル属性中の S_ISUID ( setuid) および S_ISGID ( setgid) のビットを設定しません。 これらの情報の引き継ぎが何らかの理由で失敗した場合、 pax は診断メッセージを 標準エラー出力 に書き出します。 これらの情報の保存失敗は、最終的な終了ステータスに影響しますが、 展開されたファイルが削除されるようなことはありません。 ファイル属性の操作に関するオプション文字が重複していたり、 他のオプション文字と処理上の競合を起こす場合には、 それらのオプションの中で一番最後に記述されたものの処理が採用されます。 例えば、

    -p eme

が指定された場合には、ファイルの更新時間は保存されます。
-s replstr
  アーカイブ内に格納されているファイルのうち、 pattern オペランドもしくは file オペランドで指定されたもののファイル名を、 replstr で指定された置換表現にしたがって更新します。この置換表現は、 ed(1) にて記述されている正規表現の書法に準じます。 これらの正規表現の書式は

    /old/new/[gp]

です。 ed(1) に示されるように、 old は基本的な正規表現であり、 new はアンパサンド (&)、後方参照  (nの部分は数字が入ります)、 補助表現を含むことができます。 文字列 old には、 改行文字 を含んでも構いません。 ヌル文字以外のいかなる文字も、区切り文字として用いることが可能です (ここでは / を示しました)。 また、複数の -s 表現を指定することが許されています。 これらの表現はコマンドラインで指定された順に適用され、 最初の置換が成功した時点でその置換を終了します。 置換処理の追加処理指定として、 g を指定した場合には、継続してファイル名の置換を行うことを指示します。 この場合、前回置換に成功した直後の文字から継続して置換を行います。 そして最初に置換を失敗したときに g オプションの処理を終了します。 置換処理の追加処理指定として p を指定した場合には、最初の置換成功結果を 標準エラー出力 に以下のフォーマットで書き出します:

    <original pathname> >> <new pathname>

空白文字に置換される通常ファイルもしくはアーカイブ内に格納されたファイルの ファイル名は、処理対象として選択されず、そのファイル名に対する 処理はスキップされます。

-t
  pax が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの アクセス時間を、 pax がそれらのファイルやディレクトリを処理する前のものに再設定します。
-u
  同じ名前ですでに存在するファイルやアーカイブ内に格納されているファイルより 古い (ファイル更新時刻が古い) ファイルを無視します。 読み込み処理 においては、アーカイブ内のファイルにファイルシステム上にすでに存在するものと 同じ名前のファイルがあり、アーカイブ内のファイルの方が新しい場合に、 アーカイブ内のファイルが展開されます。 書き込み処理 においては、ファイルシステム上のファイルとアーカイブ内のファイルの名前が 同じもので、かつファイルシステム上のファイルの方がアーカイブ内のものより も新しい場合に、ファイルシステム上のファイルのアーカイブへの格納が行われます。 コピー処理 においては、コピー先にあるファイルとコピー元にあるファイルが同一のファイル名 を持ち、かつコピー元にあるファイルの方が新しい場合に、 コピーあるいはリンクが行われます。
-v
  一覧表示処理 において、 ls(1) コマンドの -l オプションを用いた時の表示と同じ形式を用いて、アーカイブ内容の表示を行います。 アーカイブの他のメンバとの間にハードリンクを構成するファイルのパス名に ついては、以下のフォーマットで出力されます。

    <ls -l listing> == <link name>

アーカイブの他のメンバとの間にシンボリックリンクを構成するファイルの パス名については、以下のフォーマットで出力されます。

    <ls -l listing> => <link name>

ここで <ls -l listing> の箇所は、 ls(1) コマンドを -l オプションを付けて実行した場合の出力形式になります。 他のオプショナルモード (読み込みモード、書き込みモード、そしてコピーモード) の場合には、当該ファイルもしくはアーカイブ内のファイルの処理が始まるとすぐに、 それらのパス名が末尾の 改行文字 なしで 標準エラー出力 に書き込まれ、フラッシュされます。 ファイル名に付随する 改行文字 はバッファリングされることなく、ファイルが読み込まれたもしくは書き込まれた 直後に書き出されます。

-x format
  出力されるアーカイブフォーマットを指定します。デフォルトフォーマットは、 ustar フォーマットです。 pax ユーティリティは、現在以下のアーカイブフォーマットをサポートします:
cpio IEEE Std 1003.2 ("POSIX.2") 標準にて規定される、拡張 cpio 交換形式です。 本フォーマットのデフォルトブロックサイズは、5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 pax にて検出され、復元されます。
bcpio 古い binary cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは、5120 バイトです。 本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが 使えるならば、そちらを使用したほうがよいでしょう。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 pax にて検出され、復元されます。
sv4cpio
  Unix System V Release 4(SVR4) の cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 pax にて検出され、復元されます。
sv4crc SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 pax にて検出され、復元されます。
tar BSD 4.3 から用いられている古い BSD tar フォーマットです。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットでは、アーカイブ内に格納されるファイルのパス名は 100 文字以内 でなくてはなりません。 通常ファイル、ハードリンクファイル、 シンボリックリンクファイル、ディレクトリ のみがアーカイブ内に格納されます (他のファイルシステムタイプについては、 サポートされません)。 さらに古い tar フォーマットとの過去の互換性は、 -o オプションを用いて、アーカイブへのファイル保存時に ディレクトリを無視することで実現されます。 本オプションは、以下のように指定します:

    -o write_opt=nodir

ustar IEEE Std 1003.2 ("POSIX.2") 標準にて規定される、 拡張 tar 交換形式です。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットのアーカイブ内に保存されるファイルのパス名は、250 文字以下 の長さでなくてはなりません。

pax ユーティリティは、指定したアーカイブフォーマットの制限に起因して、ファイルの アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、 それを検出し、報告します。 各アーカイブフォーマットを使用した場合には、 使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。 典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、 ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、 そしてファイルタイプなど。 (なお、制限要素はこれらに限られるわけではありません。)
-z
  書き込み (読み取り) 時のアーカイブの圧縮 (伸長) に gzip(1) を使用します。 -a とは共に使用できません。
-B bytes
  単一のアーカイブボリュームに書き出される最大データ長を、 bytes で制限します。 bytes パラメータの末尾には m, k, b のいずれかの文字を付加でき、それぞれ 1048576 (1M), 1024 (1K), 512 の倍数を 意味します。 また、 bytes に指定する数字を x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。

警告: 最後の (もしくは最大の) 書き込み時のオフセットに基づいた EOF をサポートする デバイス (テープや通常ファイルなどのようなもの) にアーカイブを書き出す時 にのみ本オプションを使って下さい。 本オプションをフロッピやハードディスクデバイスファイルに対して用いる ことは、推奨しません。

-D
  本オプションは、 -u オプションと同様の動作を行いますが、ファイルの更新時間の代わりに ファイルの inode 変更時間がチェックされるところが異なります。 ファイルの inode 変更時間は、inode 情報 (ユーザ ID、グループ ID、その他) が コピー先のディレクトリ directory にあるものよりも新しいファイルを選択するのに用いられます。
-E limit
  部分的に破損したアーカイブの読み込みをリトライする際、その読み込み失敗回数を limit までに制限します。 limit に正の数を指定した場合、 pax はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて いる次のファイルから処理を継続します。 limit が 0 の場合、 pax は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。 limitNONE の場合には、読み込み失敗からの復帰を永遠に試行します。 デフォルトの limit の値は、小さい正の整数(リトライ回数)です。

警告: pax コマンドを、本オプションを NONE 指定して起動する場合には十分に気をつけて下さい。 というのも、処理対象となるアーカイブがぼろぼろに破損していた場合には、 処理が無限ループに陥る可能性があるからです。

-G group
  グループ名が group で指定したものであるファイルを選択します。 グループ名が # で始まる場合には、ファイルのグループ ID がそれに連なる数字のものを 選択します。'\' を用いて # をエスケープすることができます。 -G オプションは、複数指定することが可能です。 この場合、最初にグループ名もしくはグループIDが一致したところで チェックは停止します。
-H
  物理的にファイルシステムトラバースを行いながら、 コマンドラインで指定されたファイルについてのみ シンボリックリンクをたどります。
-L
  全てのシンボリックリンクファイルをたどります。 すなわち、論理的にファイルシステムトラバースを行います。
-P
  シンボリックリンクをたどりません。 すなわち、物理的にファイルシステムトラバースを行います。 デフォルトはこのモードです。
-T [from_date][,to_date][/[c][m]]
  ファイル更新時間もしくは inode 更新時間が from_date から to_date の間 (それぞれで指定した時間も含みます) にあるファイルを選択します。 from_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより新しいもののみ選択されます。 to_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより古いもののみ選択されます。 from_dateto_date が等しい場合には、ファイル更新時間もしくは inode 更新時間が その時間と等しいものが選択されます。

pax 書き込みモード もしくは コピーモード の場合には、オプションフィールドとして [c][m] を指定することが可能です。このフィールドは、時間の比較に inode更新時間と ファイル更新時間のどちら(あるいは両方)を使うかを決定します。 どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。 m は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を 比較対象として用います。 c は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、 グループ、モードその他が更新された時間) を比較対象として用います。 cm の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象 になります。 inode 更新時間の比較は、最近属性が変更されたファイルや 最近作成されたファイル、そしてファイル更新時間が古いものに再設定された ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから 展開されたファイルなどがこれにあたります) を選択するのに便利です。 ファイル時間も併用して時間比較をする機能は、 pax を用いて、 時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された ファイルのみアーカイブすること) を行うのに便利です。

時間の範囲は、6 つの異なるフィールドから成り、各フィールドは 2 ケタの数字を 含む必要があります。 その形式は以下の通りです:

    [yy[mm[dd[hh]]]]mm[.ss]

yy は、年号 (西暦) の最後の 2 桁です。 最初の mm は、月 (01 から 12) です。 dd は、日付 (01 から 31 まで) です hh は、時 (00 から 23 まで) です。 2 番めの mm は、分 (00 から 59 まで)です。 そして、 ss は、秒 (00 から 59 まで)です。 分のフィールドの mm は、省略不可であり、他のフィールドはオプションであり、以下の順序で 付加されなければなりません:

    hh, dd, mm, yy

ただし、 ss フィールドだけは、他のフィールドとは独立して付加可能です。 時間の範囲は、現在時刻からの相対値で表され、

    -T 1234/cm

は、本日の 12:34 PM から後のファイル更新時間、もしくは inode 更新時間を持つ ファイルを選択することを表します。 複数の -T による時間範囲指定を行うことが許可されており、 指定した範囲のうちいずれかと一致したら、その後の範囲チェックは行いません。

-U user
  ファイルの所有者名 user に基づいて、ファイル選択が行われます。所有者名が # で始まる場合には、ファイルの UID がそれに連なる数字のものを 選択します。'\' を用いて # をエスケープすることができます。 複数の -U オプションを指定することが許されており、その指定の中で最初にユーザが 一致した場合には、それ以降のユーザ名のチェックは行いません。
-X
  パス名で指定されたファイル階層をトラバースする場合に、異なるデバイス ID を 持つディレクトリへは下りていきません。 デバイス ID について詳細な情報を取得したい場合には、 stat(2)st_dev フィールドを参照して下さい。
-Y
  本オプションは、 -D オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて inode 更新時間をチェックするところが異なります。
-Z
  本オプションは、 -u オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて、ファイル更新時間をチェックするところが異なります。

ファイルもしくはアーカイブ内に格納されたファイルについての操作を制御する オプション ( -c, -i, -n, -s, -u, -v, -D, -G, -T, -U, -Y, -Z) は、相互に以下のような影響を及ぼします。

読み込み 処理におけるファイル展開時には、 展開されるファイルは、まず、アーカイブ内に格納されるファイルのうち -c, -n, -u, -D, -G, -T, -U のそれぞれのオプションを用いて指定されるユーザ指定のパターンオペランド に基づいて選択されます。 それらのファイルの中から -s および -i オプションがこの順に、選択されたファイル名を修正します。 それから、最終的なファイル名にて -Y および -Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 -v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。

書き込み 操作や コピー 操作のファイルアーカイブでは、以下のオプション -n, -u, -D, -G, -T, -U ( -D オプションはコピー操作時のみ適用されます) によって アーカイブメンバのファイルを選択します。 続いて、それらのファイルの中から -s および -i オプションがこの順に、選択されたファイル名を修正します。 それから コピー 処理においては、最終的なファイル名にて -Y および -Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 -v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。

-n といっしょに -u オプションあるいは -D オプションのどちらか、もしくは両方が指定された場合、そのファイルが 比較対象のファイルより新しくなければ、そのファイルは選択されたとは みなされません。

使用例

コマンド:

    pax -w -f /dev/sa0 .

は、カレントディレクトリの内容を /dev/sa0 にコピーします。

コマンド:

    pax -v -f filename

は、 filename で指定したアーカイブに格納されているファイル内容の詳細な一覧を表示します。

以下のコマンド:

    mkdir /tmp/to

    cd /tmp/from

    pax -rw . /tmp/to

を実行すると、 /tmp/from 配下のディレクトリ階層全体を /tmp/to にコピーします。

コマンド:

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

は、アーカイブファイル a.pax からデータを読み込み、アーカイブ中の ``/usr'' 配下のファイルを全て、 カレントディレクトリからの相対ディレクトリに展開します。

コマンド:

    pax -rw -i . dest_dir

は、カレントディレクトリから dest_dir ディレクトリにコピーしますが、ファイルをコピーするかどうかを 対話的に選択します。

コマンド:

    pax -r -pe -U root -G bin -f a.pax

は、 a.pax 中に格納されているファイルのうち、所有者が root でグループが bin であるファイルを選択し、すべてのファイル属性を保存して展開します。

コマンド:

    pax -r -w -v -Y -Z home /backup

は、コピー先ディレクトリ /backup にあるファイルのうち、コピー元ディレクトリ home に存在する同名のファイルより (inode 更新時刻もしくは ファイル更新時刻が) 古いものについて更新を行い、一覧表示します。

規格

pax ユーティリティは、 IEEE Std 1003.2 ("POSIX.2") 標準のスーパセットです。 オプション -z, -B, -D, -E, -G, -H, -L, -P, -T, -U, -Y, -Z 、アーカイブ形式 bcpio, sv4cpio, sv4crc, tar 、および 一覧表示 モードと 読み込み モードにおける破損したアーカイブの取り扱いは、 POSIX 標準に対する拡張です。

関連項目

cpio(1), tar(1)

歴史

paxBSD 4.4 に登場しました。

作者

Keith Muller at the University of California, San Diego

診断

pax ユーティリティは、以下の値のいずれかで終了します:
0 すべてのファイルは正常に処理されました。
1 エラーが発生しました。

アーカイブ読み込み中に pax がファイルを作成できない場合やリンクを張れない場合、 アーカイブに書き込み中にファイルが見つからない場合、 -p オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、 診断メッセージが 標準エラー出力に 書き出され、0 以外の終了ステータスが返却されますが、 処理自体は継続して行われます。 ファイルへのリンクを作成できない場合には、 pax はファイルの二次コピーを作成しません。

アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 pax はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。 更に、展開したファイルやディレクトリの属性が不正であったり、 アクセス時間、更新時間も不正である可能性があります。

アーカイブの生成が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 pax は中途半端なアーカイブを生成している可能性があります。 このようなアーカイブは 特定のアーカイブフォーマット規定を満足していない可能性があります。

コピー を行っている最中に、 pax が読み出したのと同じファイルへの書き込みを検出した場合、 そのファイルはコピーされず、診断メッセージが 標準エラー出力 へ書き出され、 pax は 0 以外の終了ステータスでプログラム終了します。

バグ

pax ユーティリティは、マルチバイト文字を認識しません。

PAX (1) July 3, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

VI = Virtually Incomprehensible.