cpio - ファイル・アーカイブをコピー・イン/アウトする

形式

cpio –o [ –aBcvyz] [–C blocksize] [–O file] [–V volpat]
cpio –i [–BbcdfmrsStuvqyz] [–C blocksize] [–I file]
  [–V volpat] [pattern …]
cpio –p [–aBdlmruv] directory

cpio ユーティリティーは従来の UNIX システムと完全な 互換性を持ってサポートされます。ただし、pax ユーティリティーをその代わりに 使用することをお勧めします。理由は、pax ユーティリティーがより多くの機能を提供し、POSIX.2 IEEE 標準 1003.2-1992 が定義したような移植可能 UNIX アプリケーション用の 標準と考えられるからです。

説明

cpio は、cpio アーカイブと呼ばれるファイルを読み取 ったり、書き込んだりします。cpio アーカイブは、ファイルおよびディレクトリーを連結したもので、その前にファイル名およびファイル・システム情報を与える ヘッダーが先行しています。cpio を使用すると、新規アーカイブの作成、既存のアーカイブの内容の取り出し、アーカイブの内容のリスト、および 1 つのディレクトリーから別のディレクトリーへのファイルのコピーを 行うことができます。

オプション

cpio に対する呼び出しは、以下のセレクター ・オプションを いずれか 1 つだけ指定しなければなりません。
–i
既存のアーカイブ (–o オプションで作成された) を 標準入力 (stdin) から読み取ります。–t オプションを指定しない限り 、cpio は、指定された 1 つ以上の pattern 引数と 一致するファイルをすべてアーカイブから取り出します。 パターンは、ファイル名生成 (sh を参照) で 使用されるものと同じです。pattern 引数を指定しなかった場合は、デフォルトのパターン * が使用されます。その結果、cpio はすべてのファイルを取り出します。
–o
stdin から読み取ったファイルのリストを使用して、新規アーカイブを 標準出力 (stdout) に書き込みます。このようなリストは、ls または find コマンドで 作成されます。例えば、以下のとおりです。
ls . | cpio –o >arch
は、作業ディレクトリーのファイルをリストするために ls を 使用し、次にこのリストを cpio への入力としてパイプ接続します。結果のアーカイブは、すべてのファイルの内容を含み、arch に書き込まれます。
–p
以下のコマンドの省略形です。
cpio –o | (cd directory; cpio –i)
ここで、cpio –i は与えられたディレクトリー内で実行されます。このオプションは、ファイル・ツリー全体をコピーするために使用することができます。
以下の追加のオプションの中で、どれが特定のセレクター・オプションに 適用できるかを判別するには、上記形式の構文 3 行を参照してください。
–a
アクセス時刻 (アーカイブへコピーするために各ファイルが アクセスされた時刻) を、コピーが行われる以前の時刻に リセットします。
–B
入出力にデフォルトの 512 バイトのバッファーではなく、5120 バイトのバッファーを使用します。
–b
取り出された各ファイルについて、各ロング・ワード内の 16 ビット・ワードをスワップし、各 16 ビット・ワード内のバイトをスワップするようにします。これによって、異なるアーキテクチャーのプロセッサー間の 情報の転送が容易になります。これは、–s および –S の両方のオプションを 指定するのと同じです。
–C blocksize
バッファー・サイズを、デフォルトの 512 バイトのバッファーではなく、指定されたブロック・サイズに設定します。
–c
ヘッダー情報を ASCII フォーマットで読み取り、書き込みます。通常は、cpio は ヘッダー情報をコンパクトなバイナリー・フォーマットで書き込みます。このオプションは、非バイナリー・ストリーム (いくつかのデータ通信リンクなど) による転送に 受け入れられやすいアーカイブを作成しますので、異なるプロセッサー間でデータを移動する場合には非常に推奨されます。
–d
必要な中間のディレクトリーが存在していない場合には、それらを強制的に作成させます。
–f
パターン照合の意味を逆にします。より正確に言えば、cpio は、どの pattern 引数にも一致しない 場合にのみ、ファイルをアーカイブから取り出します。
–I file
stdin からではなく、指定されたファイルから入力を読み取るようにします。
–l
別のコピーを作成するのではなく、ファイルへのリンクを作成する許可を与えます。
–m
出力ファイルの変更時刻を、ソース・ファイルの変更時刻に リセットします。通常は、cpio がデータをファイルにコピーするときには、ファイルの変更時刻をファイルが書き込まれた時刻に設定します。このオプションは、ディレクトリーには影響しません。
–O file
stdout にではなく、指定されたファイルに出力を書き込むようにします。
–q
作成されたファイルは、すべてテキストであると想定します。これは、すべての ¥r (キャリッジ・リターン) 文字は取り去ら れ、¥n (改行) だけが残されることを意味しています。

テキストをシステムから独立したフォーマットに変換するために –q オプションを 使用しないでください。これは、すべてのファイルを 2 回読み取ることが 必要になるからです。

–r
cpio が作業中に、ファイルを名前変更することができるように します。抽出するとき、cpio は抽出しようとするコンポーネントの名前を表示し、抽出されるファイルを指定することができるようにします。名前として . を入力した場合、cpio は名前に変更を加えずにファイルまたはディレクトリーを処理します。 単に改行すれば、cpio はファイルをスキップします。
–S
ファイルを抽出する場合にのみ、移植性のために、ロング・ワード (32 ビットまたは 64 ビットのワード) 内 の 16 ビットのワードの対をスワップします。このオプションは、ヘッダーには影響ありません。
–s
ファイルを抽出する場合にのみ、移植性のために、各 16 ビットワード内のバイトの対をスワップします。–s は、ヘッダーには影響ありません。
–t
ファイルの抽出を行わず、その代わりにアーカイブ内に含まれているファイル名の表を作成します。–v オプションの 説明を参照してください。
–u
ターゲットがアーカイブより新しい場合でも、アーカイブ・ファイルをターゲット・ファイルにコピーします。通常は、cpio は そのファイルをコピーしません。
–V volpat
自動マルチボリューム・サポートを提供します。cpio は、出力をファイルに書き込みます。ファイルの名前は、volpat を使ってフォーマットされます。現行のボリューム番号は 、volpat 内の任意の # の オカレンスに置き換えられます。このオプションを指定して cpio を呼び出すと、このコマンドはアーカイブ・セット内の最初の番号を要求し、この番号とキャリッジ・リターン (CR) が入力されるのを待ってその操作を 続行します。アーカイブで読み取りエラーないし書き込みエラーが発生したとき も cpio は同様のメッセージを出します。その理由は、この種のエラーは、cpio がボリュームの 終わりに到達し新しいボリュームに進む必要があるためです。
–v
通常よりも詳細な情報を提供します。cpio は、アーカイブからファイルを取り出し、あるいはファイルをアーカイブに追加するたびに、そのファイルの名前を出力します。–v および –t の両方を指定すると 、cpio は、ls –l コマンドによって 作成されるものと同様のフォーマットのファイルの表を出力します。
–y
–V と共に使用すると、開始するボリュームの番号は要求しませんが、読み取りまたは書き込みエラーを検知した場合には要求します。
–z
Lempel-Ziv 圧縮を実行します。 出力は常に 16 ビット圧縮です。入力の場合は、16 ビットまでの 任意の圧縮を受け付けることができます。

使用上の注意

  1. ファイル名を検索するとき、マルチバイト・パターンを使用する必要がある場合は、pax コマンドを使用します。
  2. POSIX 1003.1 標準では、cpio アーカイブのフォーマットを定義し、保管できる UID と GID を最大値 262143 に制限しています。これより大きな値は正しく復元されません。
  3. –b–S および –s オプションで 行われるバイトおよびワードのスワッピングは、書き込まれたファイル・データについてのみ有効です。–c オプションが指定されていてもいなくても、ヘッダー情報は常にマシン不変のフォーマットで書き込まれます。

ローカライズ

cpio は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_MESSAGES
  • LC_SYNTAX
  • NLSPATH

詳しくは、ローカライズを参照してください。

終了値

0
正常終了
1
以下のいずれかによる失敗。
  • オプションが正しくない
  • コマンド行の引数が正しくない
  • メモリー不足
  • 圧縮エラー
  • 抽出の失敗
  • 作成の失敗

移植性

X/Open 移植性ガイド、バージョン 7 以降の非 Berkeley UNIX システム。

–q–V–y および –z オプションは 、z/OS シェルに固有なものです。

関連情報

compresscpddfindlsmvpaxtarcpiouncompress

pax ファイルのフォーマットについては、ファイル・フォーマットを参照してください。