スポンサーリンク

PAX(1) FreeBSD 一般コマンドマニュアル PAX(1)

名称

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
で指定されるアーカイブフォーマットから特定される、アーカイブファ イル展開/書き出しアルゴリズムの更新情報を指定します。一般的に、 optionsname=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 つのフラグが用意されていま す。

先述のオプション一覧にて、 ‘属性の保存’ とは、起動したプロセスの権 限に応じてアーカイブ内に保存された属性が展開ファイルに反映されるこ とを意味します。これ以外の場合は、展開されるファイルの属性は、通常 のファイル生成と同様に決定されます。 eo のどちらも指定されない 場合、あるいはユーザ 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 (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
4.3BSD から用いられている古い 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 は最初のリードエラーがアーカイブボリュームに発生したところで処 理を停止します。 limit が NONE の場合には、読み込み失敗からの復帰を 永遠に試行します。デフォルトの 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)

歴史

pax は 4.4BSD に登場しました。

作者

Keith Muller at the University of California, San Diego

診断

pax ユーティリティは、以下の値のいずれかで終了します:

       0

すべてのファイルは正常に処理されました。

1
エラーが発生しました。

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

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

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

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

バグ

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

FreeBSD 10.0 July 3, 2004 FreeBSD 10.0

スポンサーリンク