PRIMECLUSTER Global File Services 説明書 4.1 (Solaris(TM) オペレーティング環境版)
目次 索引 前ページ次ページ

付録B リファレンスマニュアル> B.3 GFSローカルファイルシステム専用一般コマンド

B.3.2 sfxcpio(1) エクステント属性情報を伴うアーカイブからのファイルの抽出または復元

◆形式

sfxcpio -i [ bBcdfkmPrsStuvV6 ] [ -C bufsize ] [ -E file ] [ -I file [ -M message ] ] [ -R id ] [ pattern ... ]

sfxcpio -o [ aABcLPvV ] [ -C bufsize ] [ -O file [ -M message ] ]

sfxcpio -p [ adlLmPuvV ] [ -R id ] directory

◆機能説明

 sfxcpio コマンドは、GFS ローカルファイルシステム上のエクステント属性情報を保持するファイル、または保持しないファイルを sfxcpio アーカイブへコピーしたり、sfxcpio アーカイブからコピーしたりします。

 sfxcpio は、GFS ローカルファイルシステム以外でも動作しますが、その場合は極力 cpio(1) を使用してください。sfxcpiocpio(1) との関係や sfxcpio アーカイブを GFS ローカルファイルシステム以外に復元した場合の動作等については、注意事項を参照してください。

 -i, -o, -p の各オプションは、実行する処理を選択します。以下に、これらの各処理を説明します(これらの処理は相互に排他的です)。

[復元モード]

 sfxcpio -i(復元) は、以前に sfxcpio -o が生成した出力を標準入力としてファイルを抽出します。 pattern に一致する名前のファイルだけが選択されます。pattern についての詳細は、後述する「オペランド」の項および sh(1) の説明を参照してください。抽出されたファイルは条件に応じて作成され、以下に述べるオプションに基づいて現在のディレクトリにコピーされます。ファイルのアクセス権は前の sfxcpio -o で出力した際のファイルと同じです。現在のユーザがスーパーユーザでないかぎり、所有者およびグループは現在のユーザと同じです。スーパーユーザの場合は、前に実行した sfxcpio -o の出力ファイルから得られる所有者およびグループと同じになります。sfxcpio -i が作成しようとするファイルがすでに存在していて、さらに既存のファイルが同じか新しいバージョンのときは、メッセージが出力されファイルは置換されませんので注意してください。(-u オプションは既存のファイルを無条件に置換するときに使用します)。

[保管モード]

 sfxcpio -o(保管) は、標準入力からパス名のリストを読み込んで、それらのファイルをパス名、ステータス情報およびエクステント属性情報と共に標準出力へコピーします。出力は、デフォルトでは 512 バイト境界でブロック化されますが、(-B または -C オプションを使用して) ユーザ指定のブロックサイズまたはデバイスに依存したブロックサイズでの出力も可能です。

[パスモード]

 sfxcpio -p(パス) は、ファイルのパス名のリストを標準入力から読み込んで、条件に応じてファイルを作成し、以下のオプションに基づいてコピー先の directory へコピーします。

 文字型デバイスへ出力(-o) または文字型デバイスからの入力(-i) 時に、媒体の終わり (例えば、テープの終わり) に到達し、さらに -O オプションや -I オプションが使用されていないと sfxcpio は次のメッセージを表示します。

To continue, type device/file name when ready.

 継続するには、媒体を交換して文字型特殊デバイス名 (例えば /dev/rmt/0m) を入力して RETURN キーを押してください。これは、sfxcpio に異なるデバイスを使用するように命令して、処理を続行したい場合などに使います。例えば、2 台のテープデバイスがあるなら、テープ交換の間に sfxcpio が処理を継続できるよう他方のデバイスへ切り替えたいといった場合です (RETURN キーのみを押すと sfxcpio は処理を終了します)。

◆オプション

 以下のオプションが指定できます。

-i

 sfxcpio -i (復元) は、指定されたファイルを標準入力から抽出します。

-o

 sfxcpio -o (保管) は、パス名のリストを標準入力から読み込んで、そのファイルを標準出力へコピーします。

-p

 sfxcpio -p (パス) は、ファイルのパス名のリストを標準入力から読み込みます。

 上記の -o, -i, -p オプションのどれかを指定した後に、以下のオプションを任意の順序で指定できます。

-a

 コピー後に、入力ファイルのアクセス時間をリセットします。sfxcpio -pla (-m との同時使用不可)が指定されていると、リンクされたファイルのアクセス時間はリセットされません。

-A

 ファイルをアーカイブへ追加します。-A オプションには -O が必要です。ファイル、フロッピーディスク、またはハードディスクパーティションのアーカイブにのみ有効です。

-b

 各ワード内のバイト順を逆にします(-i オプションとのみ使用可)。

-B

 入出力を 5120 バイトでブロック化します。このオプションと -C オプションを使用していないときのデフォルトのバッファサイズは 512 バイトです。-B-p オプションには適用されません。なぜなら、-B オプションは /dev/rmt/0m などの文字型特殊デバイスとの入出力にだけ有効だからです。

-c

 可搬性を考慮して、ASCII 文字形式でヘッダ情報を読み書きします。このヘッダ形式に関してユーザ ID またはグループ ID の制限はありません。SVR4 をベースとしたマシン間ではこのオプションを使用してください。-c オプションは、SVR4 ベースのシステムでだけサポートされている拡張デバイス番号を使うことを意味しています。

-C bufsize

 入出力を bufsize 単位でブロック化します。bufsize は、正の整数で置き換えられます。このオプションと -B オプションを使用していないときのデフォルトのバッファサイズは 512 バイトです(-C-p オプションには適用されません。なぜなら、-C は /dev/rmt/0m などの文字型特殊デバイスとの入出力にのみ有効だからです)。

-d

 必要に応じてディレクトリを作成します。

-E file

 アーカイブから抽出するファイル名のリストを含む (1 行 1 ファイル名の)入力ファイル(file)を指定します。

-f

 pattern で指定されたものを除くすべてのファイルを抽出します (pattern の説明については「オペランド」の項を参照してください)。

-I file

 入力アーカイブとして file の内容を読み込みます。file が文字型特殊デバイスで、現在の媒体をすべて読み終えた場合、処理を続けるために媒体を交換して RETURN キーを押してください。このオプションは -i オプションとのみ使用できます。

-k

 破壊されたファイルヘッダや I/O エラーを読み飛ばします。破壊したりシーケンスが乱れたりした媒体からファイルをコピーしたい場合は、このオプションにより正常なヘッダを持つファイルだけを読むことができます (他の sfxcpio アーカイブを含む sfxcpio アーカイブの場合、エラーが発生すると sfxcpio は終了します。sfxcpio は次の正常なヘッダを検索し、より小さいアーカイブを見つけるとそのトレーラに出会うまで読んで、終了します)。-i オプションとのみ使用できます。

-l

 可能な限り、ファイルをコピーしないでリンクします(-p オプションとのみ使用可)。

-L

 シンボリックリンクをたどります。デフォルトは、シンボリックリンクをたどりません。

-m

 以前のファイル更新時間を取得します。このオプションは、コピー中のディレクトリには無効です(-a とは同時使用不可)。

-M message

 媒体交換時の message を定義します。オプション -O または -I を使用して、文字型特殊デバイスを指定しているときに、媒体の終わりに達したときに出力されるメッセージを定義します。次の媒体のシーケンス番号を表示するのに1つの %d が使用できます。

-O file

 sfxcpio の出力先を file に変更します。file が文字型特殊デバイスで現在の媒体がいっぱいのとき処理を継続するには、媒体を交換して RETURN キーを押してください。-o オプションとのみ使用できます。

-P

 ACL を保持します。このオプションを出力用に使用した場合、ACL が存在していれば、その他の属性とともに標準出力に書き出されます。ACL は、特殊なファイルタイプを持つ特殊ファイルとして作成されます。このオプションを入力用に使用した場合、ACL は他の属性とともに標準入力から復元されます。このオプションは特殊ファイルタイプを認識できます。ACL がすべてのシステムにサポートされているとは限らず、可搬性がないため、このオプションは -c オプションとともに使用しないでください。可搬性を考慮して、ASCII ヘッダを使用してください。

-r

 対話形式でファイル名を変更します。RETURN キーだけを押すと、そのファイルを飛ばします。"." と入力すると、元のパス名を使用します (sfxcpio -p では使用できません)。

-R id

 各ファイルの所有者とグループ情報を指定した id に変更します (id は /etc/passwd ファイル内の有効なログイン ID でなければなりません)。このオプションはスーパーユーザだけが使用できます。

-s

 ハーフワードごとにバイトを交換します。

-S

 ワードごとにハーフワードを交換します。

-t

 入力の内容を表示します。ファイルは生成されません (-V と同時使用不可)。

-u

 無条件にコピーを実行します (通常、古いファイルは同一名の新しいファイルを置換しません)。

-v

 詳細表示。ファイル名のリストを出力します。-t オプションと一緒に使用すると ls -l コマンドの出力のようになります (ls(1) 参照)。

-V

 詳細表示。入力または出力した各ファイルの内容を完全に表示します。すべてのファイル名の表示をしないで sfxcpio が動作していることをユーザが確認するときに便利です。

◆オペランド

 以下のオペランドが指定できます。

directory

 sfxcpio -p の対象となる既存ディレクトリのパス名。

pattern

 パターンマッチング用の表現方法を利用した式。これはシェルがファイル名のパターンマッチングに利用する式 (sh(1) を参照)や正規表現に似たものです。以下に示すメタキャラクタが定義されています。

*

 空の文字列を含み、あらゆる文字列と一致します。

?

 あらゆる 1 文字と一致します。

[...]

 カッコ内のどれかの文字と一致します。2つの文字を - で区切って指定すると、システムのデフォルトの照合シーケンスに従ってその 2 文字の間のすべての文字 (2 文字自身も含む) と一致します。なお最初のカッコ [ の直後の文字が ! のとき、結果は保証されません。

!

 否定を表します。例えば !abc* と指定すると、文字列 abc で始まるファイル名とは一致しません。

 pattern 指定で、メタキャラクタ ?*[...] はスラッシュ(/)と一致し、バックスラッシュ()はエスケープ文字です。複数 pattern も指定可能で、pattern が何も指定されなければデフォルト値として * (すなわち、すべてのファイルを選択する)が採用されます。

 各パターンは二重引用符で囲む必要があります。そうしないと、現在のディレクトリ内のファイルが使用されることがあります。

◆使用法

 2 ギガバイト以上のファイルを保管することはできません。また、8 ギガバイト以上のアーカイブを作成することはできません。

◆使用例

 以下に sfxcpio の3つの使用例を示します。

 標準入力をパイプ経由で sfxcpio -o に渡すと、ファイルがグループ化されて1つのアーカイブファイル(../newfile) にまとめられます。-c オプションは、アーカイブファイルの他のマシンとの互換性を保証します。ファイル名のリストをパイプ経由で sfxcpio に渡すには、ls(1) の代わりに find(1), echo(1), cat(1) などが使用できます。ファイルではなくデバイスへ出力先を変更することもできます。


% ls | sfxcpio -oc > ../newfile


 sfxcpio -isfxcpio -o の出力を使用して(下の例では cat を使用してパイプに渡している)、パターン (memo/a1、 memo/b*) に一致するファイルを抽出します。さらに必要に応じて現在のディレクトリ下にディレクトリを作成し(-d オプション)、適切なディレクトリにファイルを格納します。-c オプションは互換性のあるヘッダで入力ファイルが作成されているときに使用します。何もパターンが与えられないと、 newfile 内のすべてのファイルをディレクトリに格納します。


% cat newfile | sfxcpio -icd "memo/a1" "memo/b*"


 sfxcpio -p はパイプ経由でファイル名を読み込んで、それらのファイルを別のディレクトリ(下の例では newdir) へコピーまたはリンク(-l オプション)します。-d オプションは必要に応じてディレクトリを作成することを意味します。-m オプションは変更時間を取得します (sfxcpio に渡すパス名を作成するのに find(1)-depth オプションを使用してください。これによって読み取りのみが許可されたディレクトリ下にファイルを作成しようとするときに発生する問題を排除できます)。コピー先のディレクトリ newdir は必ず指定してください。


% find . -depth -print | sfxcpio -pdlmv newdir


 find(1) と一緒に sfxcpio を使用する場合、sfxcpio のオプションに -L を使用しているときは find(1) のオプションに -follow を(逆の場合も同様)使用してください。そうしないと、予期しない結果を出力します。

 複数のテープに対してアーカイブする場合は、古いテープを取り外し、新しいテープを取り付け、さらに次の装置名を入力して(通常、最初のテープ装置と同じ)次のテープに引き継いでください。RETURN キーを押すと sfxcpio が終了します。

◆環境

 sfxcpioの実行に影響を与える環境変数 LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_TIME, TZ, NLSPATH についての詳細は、environ(5) を参照してください。

◆終了ステータス

 以下の終了ステータスが返されます。

0 正常終了

>0 エラーが発生した。

◆関連項目

sfxcp(1), sfxgetext(1), sfxmv(1), sfxsetext(1).

cpio(1), ar(1), cat(1), echo(1), find(1), ls(1), setfacl(1), sh(1), tar(1), vold(1M), archives(4), attributes(5), environ(5), largefile(5), standards(5).

◆注意事項

 パス名は、バイナリで 256 バイト(デフォルト)に制限されます。それ以外は 1024 バイトに制限されます。

 選択されたヘッダ形式に対してユーザID またはグループ ID が大きすぎるファイルはエラーメッセージが出力されます。ユーザ ID またはグループ ID のすべての値をサポートできるアーカイブを作成するには、-c を使用してください。

 スーパーユーザだけが特殊ファイルをコピーできます。

 512 バイトを 1 ブロックとみなします。

 ファイルのアクセス権が 000 で、何らかの文字データを持ち、さらにユーザが root でない場合、そのファイルは保管されません。

 ボリューム管理デーモンが稼働している場合には、/dev/rdiskette などの通常のデバイス名を使ってフロッピー装置をアクセスできないことがあります。詳しくは vold(1M) を参照してください。

 テープからハードディスクへファイルを取り出したりコピーしたりする場合は、ハードディスクからテープへコピーした時と同じブロック化因数を使用してください。したがって、-B オプションを指定してください。

 sfxcpio は、sfxcpio 形式のアーカイブだけを読むことができます。cpio 形式のアーカイブを読むことはできません。

 sfxcpio は、GFS ローカルファイルシステム以外のファイルシステムでも動作しますが、その振舞いは従来の cpio(1) と同等です。

 sfxcpio は異なるファイルシステム間での移動も可能です。ただし、GFS ローカルファイルシステム上のファイルを他のファイルシステム(例えば、UFS) 上にコピーすると、エクステント属性情報は失われます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2004