CPIO(1L)

名称
cpio - アーカイブファイルへのファイルのコピーや、アーカイブファイルからファイルへのコピーをおこなう

書式
cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message] [-O [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--format=format] [--message=message] [--null] [--reset-access-time] [--verbose] [--dot] [--append] [--block-size=blocks] [--dereference] [--io-size=bytes] [--help] [--version] < name-list [> archive] cpio {-i|--extract} [-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H format] [-M message] [-R [user][:.][group]] [-I [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--make-directories] [--nonmatching] [--preserve-modification-time] [--numeric-uid-gid] [--rename] [--list] [--swap-bytes] [--swap] [--dot] [--unconditional] [--verbose] [--block-size=blocks] [--swap-halfwords] [--io-size=bytes] [--pattern-file=file] [--format=format] [--owner=[user][:.][group]] [--no-preserve-owner] [--message=message] [--help] [--version] [pattern...] [< archive] cpio {-p|--pass-through} [-0adlmuvLV] [-R [user][:.][group]] [--null] [--reset-access-time] [--make-directories] [--link] [--preserve-modification-time] [--unconditional] [--verbose] [--dot] [--dereference] [--owner=[user][:.][group]] [--no-preserve-owner] [--help] [--version] destination-directory < name-list

解説
本マニュアルは、GNU 版の cpio について説明します。 cpio は、cpio 形式もしくは tar 形式のアーカイブファイルに格納されたファイルを 取り出したり、その逆を行ったりします。アーカイブファイルの中には、ファ イルそのものの情報の他に、それら個々のファイルについての所有者や属性その 他の情報を格納してあります。アーカイブファイルは、ディスク上のファイルで も、テープ上に格納してあっても、もしくはパイプであっても構いません。 cpio は、3つの操作モードを持っています。

コピーアウトモードでは、 cpio はファイルをアーカイブファイルにコピーします。cpio は、標準入力からファ イル名のリストを1行ずつ読み込み、標準出力にそのファイルのアーカイブを書 き出します。ファイルリストの作成には、 find コマンドが多く使われます。 find コマンドに、-depth オプションを付加してやって、ディレクトリの属性によっ て読み込み不可であったり、検索が出来なかったりする問題を最小限に抑えるよ うにして下さい。

コピーインモードでは、 cpio はファイルをアーカイブファイル、もしくはアーカイブの内容のリストからコ ピーします。cpioは、アーカイブを標準入力から読み込みます。オプションで ないコマンドラインの引数は、すべてシェルによって展開される文字列として 解釈されます。これは、アーカイブ内のファイル名が、この文字列によって指 定されるパターンにマッチする場合にのみそのファイルを展開することを意味 します。また、シェルでの解釈にかかわらず、ファイル名の先頭に`.'を含む場 合には、パターンの最初にワイルドカードがある場合にパターン一致します。 そして、ファイル名に`/'を含む場合にも、ワイルドカードによる一致が期待 できます。パターンが指定されない場合には、全てのファイルが展開対象とな ります。

コピーパスモードでは、 cpio はファイルをあるディレクトリから別のディレクトリにコピーします。実際に は、アーカイブファイルを用いて、コピーアウトモードとコピーインモードを 組み合わせて実行するような形になります。 cpioは、コピーするファイルリストを標準入力から受けとります。これらのファ イルのコピー先のディレクトリについては、オプション以外の引数で与えられ ます。

cpio は、 binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, POSIX.1 tar の各形式のアーカイブフォーマットをサポートします。 binaryフォーマットは、異なるマシンアーキテクチャの間でアーカイブフォー マットが異なるため、ほとんど使われません。 old ASCIIフォーマットは、異なるマシンアーキテクチャの間でのアーカイブの 互換性は保たれますが、65536 個を超えるi-nodesを備えるシステムで使われる ことを想定してません。 new ASCIIフォーマットは、異なるマシンアーキテクチャの間でのアーカイブの 互換性は保たれます。old ASCIIフォーマットのように、ファイルシステムのサ イズの制限はありませんが、全てのバージョンの cpio でこの形式をサポートするわけではありません。現状でこのフォーマットをサ ポートするcpioは、GNU cpio と、SVR4のcpioのみです。 crcフォーマットは、new ASCIIフォーマットと似てますが、アーカイブ作成時に cpio が各ファイルについてチェックサムを計算し、アーカイブ内に含めるところが 異なります。このチェックサムは、アーカイブからファイルを取り出す時のベ リファイに使用されます。 HPUXフォーマットは、デバイスファイルを格納する形式が他のcpioと異なる HPUXのcpio形式との互換性を持たせるために存在します。

tarフォーマットは、 tar との互換性を持たせるために存在します。tarフォーマットでは、アーカイブさ れるファイル名としては、100文字を超えるものは使えません。そして、ブロック デバイス特殊ファイルやキャラクタデバイス特殊ファイルをアーカイブするこ とも出来ません。 POSIX.1 tarフォーマットは、アーカイブされるファイル名としては、255文字を 超えるものは使えません。(ちょうどその場所に、"/"が含まれる場合は除きます)。

デフォルトでは、 cpio は 古い cpio との互換性のためにバイナリフォーマットアーカイブを作成します。 アーカイブを展開する場合には、 cpio は自動的に読み込まれたアーカイブの種類、そして異なるバイトオーダのマシンで 作成されたかどうかを判断します。

ある cpio のオプションは、操作モードを指定します。どのオプションがどのモードに対応す るかについては、形式のセクションを見て下さい。

  オプション

-0, --null
    コピーアウトおよびコピーパスモードにおいて、改行のかわりにヌル文字で終了す るファイル名のリストを、読み込みます。これは、改行を含むファイル名を持つ ファイルをアーカイブできるようにするためです。 GNU find を使うことで、ヌル文字で終了するファイル名のリストを生成することが出来ます。

-a, --reset-access-time
    ファイルを読み込んだ後に、それらのファイルのアクセスタイムの再設定を行 います。これは、これらのファイルがその時点で読み込まれたもののように見え ないようにするためです

-A, --append
    すでに存在するアーカイブファイルに追加書き込みをします。本オプションを使 うためには、 は、 -O もしくは -F (--file) オプションにて指定した名前のアーカイブファイルがディスク上に存在する必要 があります。

-b, --swap
    コピーインモードにおいて、データ中の1ワード(32ビット)データの上下16ビット を入れ換え、1ハーフワード(16ビット)の上下8ビットを入れ換えます。本オプショ ンは、 -sS と同等です。 本オプションは、ビッグエンディアンマシンとリトルエンディアンのマシンの間で 32ビット整数を変換するために用います。

-B  I/Oブロックサイズを5120バイトに設定します。ブロックサイズの初期値は512バイト です。

--block-size=BLOCK-SIZE
    I/OブロックサイズをBLOCK-SIZE * 512バイトに設定します。

-c  アーカイブ形式として、old ASCIIフォーマットを用います。

-C IO-SIZE, --io-size=IO-SIZE
    I/OブロックサイズをIO-SIZEで指定しただけのバイト数に設定します。

-d, --make-directories
    必要に応じてディレクトリを作成します。

-E FILE, --pattern-file=FILE
    コピーインモードにおいて、ファイル名を特定するためのパターン指定、もし くはファイルリストをファイル名 FILE から読み出します。ファイル名FILEで 特定できるファイルに記述された各行は、 cpio のオプション以外の文字列で指定されたものとして扱われます。

-f, --nonmatching
    与えられたパターンのいずれにも一致しないファイルのみ扱います。

-F, --file=archive
    標準入力もしくは標準出力のかわりに、指定されたアーカイブファイルを 用います。他のマシンのテープドライブをアーカイブファイルとして扱う 場合には、`HOSTNAME:'で始まるファイル名を使用して下さい。ホスト名は、 コマンドを起動するユーザが、テープドライブ使用できるホストの名前で あることが必要です。典型的には、そのユーザの `~/.rhosts'エントリに エントリが存在するマシンであることが多いようです。

--force-local
    With -F、 -I、 もしくは -O オプションを用いた場合に、コロン文字を含むファイル名をローカルファイル 名とみなして扱います。通常、コロン文字は、リモートホスト名とその上のロー カルファイル名を区切る場合に使用されます。

-H FORMAT, --format=FORMAT
    アーカイブフォーマットとして、FORMATのものを用います。FORMATの部分に指 定出来る文字列を以下に示します。これらの名前は、すべて大文字の場合でも 認識されます。コピーインモードでのデフォルトは、入力ファイルの内容から 自動的にアーカイブフォーマットを判定するもので、コピーインモードでは、 "bin"フォーマットです。

    bin binaryフォーマットです。ほとんど使われません。

    odc old ASCII(old (POSIX.1) portable)フォーマットです。

    newc
        new ASCII(new (SVR4) portable)フォーマットです。

    crc crcフォーマットです。

    tar (old) tar フォーマットです。

    ustar
        POSIX.1 tar フォーマットです。GNU tar アーカイブも取り扱うことが出来ます。POSIX.1 tar と GNU tar は、よく似て いますが、同じではありません。

    hpbin
        HPUXのcpioで使用されている、古いbinaryフォーマットです。(他のcpioとは異 なる形式で、デバイスファイルを保存します)。

    hpodc
        HPUXのcpioで使用されているportableフォーマットです(他のcpioとは異 なる形式で、デバイスファイルを保存します)。

-i, --extract
    コピーインモードで走行します。

-I archive
    標準入力のかわりに、指定されたアーカイブファイル名を用います。他のマシン のテープドライブをアーカイブファイルとして扱う場合には、`HOSTNAME:'で始 まるファイル名を使用して下さい。ホスト名は、コマンドを起動するユーザが、 テープドライブ使用できるホストの名前であることが必要です。典型的には、 そのユーザの `~/.rhosts'エントリにエントリが存在するマシンであることが 多いようです。

-k  無視されます。他のバージョンの cpio との互換性を保つためにのみ存在します。

-l, --link
    ファイルをコピーするかわりに、可能な限りリンクを張ります。

-L, --dereference
    シンボリックリンクを参照しません。シンボリックリンクファイルをコピー するかわりに、シンボリックリンクファイルの指す実体のファイルをコピー します。

-m, --preserve-modification-time
    コピー先のファイル生成時に、コピー元のファイルの更新時刻を保持します。

-M MESSAGE, --message=MESSAGE
    バックアップ媒体(テープやフロッピーディスクなど)のボリューム終端まで 到達した場合に、MESSAGEで指定された文字列を出力します。この指定をする ことで、ユーザに新しい媒体の挿入指示を出すことが可能になります。MESSAGE で指定される文字列に"%d"が含まれる場合には、"%d"文字列は、現在の媒体通番 (1からはじまります)に置き換えられます。

-n, --numeric-uid-gid
    バーボーズモードで内容のリストを出す場合に、UIDおよびGIDを、そのIDの 対応するユーザ名／グループ名でなく、数字で表示します。

--no-preserve-owner
    コピーインモードおよびコピーパスモードにおいて、ファイルの所有者を変更し ません。これは、展開後のファイルの所有者は、実際にファイルの展開を行っ ているユーザとなることを示します。このオプションは、スーパユーザ以外の ユーザが使用する場合にはデフォルトで有効になります。これは、System V のユーザが、誤ってファイルの所有権を手放さないようにするためです。

-o, --create
    コピーアウトモードで走行します。

-O archive
    標準出力のかわりに、指定したアーカイブファイルを用います。他のマシン のテープドライブをアーカイブファイルとして扱う場合には、`HOSTNAME:'で始 まるファイル名を使用して下さい。ホスト名は、コマンドを起動するユーザが、 テープドライブ使用できるホストの名前であることが必要です。典型的には、 そのユーザの `~/.rhosts'エントリにエントリが存在するマシンであることが 多いようです。

-p, --pass-through
    コピーパスモードで走行します。

-r, --rename
    対話的にファイル名を変更します。

-R [user][:.][group], --owner [user][:.][group]
    コピーアウトモードおよびコピーパスモードにおいて、全ての生成ファイルの 所有権を指定したユーザ、グループに設定します。ユーザもしくはグループの どちらか、もしくは両方とも指定される必要があります。グループの指定がさ れずに":"もしくは"."セパレータが指定された場合には、ユーザのログイング ループがグループとして設定されます。スーパーユーザのみがファイルの所有 権を変更することが可能です。

-s, --swap-bytes
    コピーインモードにおいて、ファイル中のデータの16ビットの上位8ビットと下位 8ビットを入れ換えます。

-S, --swap-halfwords
    コピーインモードにおいて、ファイル中のデータの32ビットの上位16ビットと下位 16ビットを入れ換えます。

-t, --list
    入力ファイル名の一覧を出力します。

-u, --unconditional
    古いファイルと新しいファイルの置換えを問い合わせることなく、全てのファ イルを上書きします。

-v, --verbose
    処理されたファイル名を表示します、 -t オプションが同時に指定された場合には、`ls -l'形式の表示を得ることが出 来ます。ustarフォーマットのアーカイブから得られる表示においては、ローカ ルシステムにて割り当てられていないユーザ名およびグループ名のファイルに ついては、アーカイブ内に格納されたUIDおよびGIDの値に対応するローカルでの ユーザ名、グループ名に置き換えてその部分を表示します。

-V --dot
    各ファイルを処理するごとに、"."を表示します。

--version
    cpio のプログラムバージョンを表示して終了します。