EN JA
CPIO(1)
CPIO(1) FreeBSD General Commands Manual CPIO(1)

名称

cpioアーカイブへファイルをコピーし、アーカイブからファイルをコピーする

書式

cpio { -i}[ options][ pattern ...][ < archive]

cpio { -o}[ options] < name-list [ > archive]

cpio { -p}[ options] dest-dir < name-list

解説

cpio は、アーカイブとディレクトリの間で、ファイルをコピーします。この実装は、tar, pax, cpio, zip, jar, ar と ISO 9660 cdrom イメージから抽出でき、 tar, pax, cpio, ar と shar アーカイブを作成できます。

cpio への最初のオプションは、次のリストからのモード指示です:

-i
入力。 (上書きでないなら) 標準入力からアーカイブを読み込み、ディスクに内容を抽出するか、または ( -t オプションが指定されるなら) 標準出力への内容をリストします。 1 つ以上のファイルパターンが指定されるなら、パターンの 1 つにマッチしているファイルだけが抽出されます。
-o
出力。標準入力からファイル名のリストを読み込んで、指定された項目を含んで (上書きでないなら) 標準出力に新しいアーカイブを作り出します。
-p
パススルー。標準入力からファイル名のリスト読み込んで、指定されたディレクトリへファイルをコピーします。

オプション

特に明記しない限り、オプションは、すべての操作モードで適用可能です。
-0, - -null
改行の代わりにヌル (NUL) 文字によって区切られたファイル名を読み込みます。これは、読み込まれるファイル名のいずれかに改行を含むかもしれないなら、必要です。
-A
(o モードのみ) 指定されたアーカイブに追加します。 (まだ実装されていません。)
-a
(o と p モード) それらが読み込まれた後に、ファイル上のアクセス時刻をリセットします。
-B
(o モードのみ) 5120 バイトのブロックでレコードを出力します。
-C size
(o モードのみ) size バイトのブロックでレコードを出力します。
-c
(o モードのみ) 古い POSIX の移植性のある文字形式を使用します。 - -format odc と同等です。
-d, - -make-directories
(i と p モード) 必要に応じてディレクトリを作成します。
-E file
(i モードのみ) リストして抽出するために file からのファイル名パターンのリストを読み込みます。
-F file, - -file file
file からアーカイブを読み込むか、またはアーカイブに書き込みます。
-f pattern
(i モードのみ) pattern (パターン) にマッチしているファイルを無視します。
-H format, - -format format
(o モードのみ) 指定された形式で出力アーカイブを作成します。サポートされている形式は、次の通りです:

cpio
odc と同義語です。
newc
SVR4 の移植性のある cpio 形式。
odc
古い POSIX.1 の移植性のあるオクテット指向の cpio 形式。
pax
POSIX.1 pax 形式、ustar 形式の拡張。
ustar
POSIX.1 tar 形式。

デフォルトの形式は、 odc です。基本的な libarchive(3) ライブラリによってサポートされている現在の形式に関するより完全な詳細については、 libarchive-formats(5) を参照してください。

-h, - -help
使用法の情報を印刷します。
-I file
file からアーカイブを読み込みます。
-i, - -extract
入力モード。説明については、上記を参照してください。
- -insecure
(i と p モードのみ) 抽出またはコピーの間、セキュリティチェックを無効にします。これによってシンボリックリンクと名前に‘..’を含むパス名を通して抽出することができます。
-J, - -xz
(o モードのみ) それを書き込む前に xz 互換の圧縮でファイルを圧縮します。入力モードで、このオプションは、無視されます。 xz 圧縮は、入力で自動的に認識されます。
-j
-y の同義語です。
-L
(o と p モード) すべてのシンボリックリンクをたどります。通常、シンボリックリンクは、シンボリックリンクとしてアーカイブされ、コピーされます。このオプションで、リンクのターゲットは、代わりにアーカイブされるか、またはコピーされます。
-l, - -link
(p モードのみ) コピーの代わりに、ターゲットディレクトリから元のファイルへのリンクを作成します。
- -lrzip
(o モードのみ) lrzip(1) で結果のアーカイブを圧縮します。入力モードで、このオプションは、無視されます。
- -lzma
(o モードのみ) それを書き込む前に lzma 互換の圧縮でファイルを圧縮します。入力モードで、このオプションは、無視されます。 lzma 圧縮は、入力で自動的に認識されます。
- -lzop
(o モードのみ) lzop(1) で結果のアーカイブを圧縮します。入力モードで、このオプションは、無視されます。
-m, - -preserve-modification-time
(i と p モード) ソース中のものにマッチする作成されたファイルのファイル更新時刻を設定します。
-n, - -numeric-uid-gid
( -t のみを付けた i モード) 数値の uid と gid を表示する。デフォルトで、 cpio は、それらがアーカイブで提供されるとき、ユーザとグループ名を表示するか、またはシステムパスワードデータベースのユーザとグループ名を検索します。
- -no-preserve-owner
(i モードのみ) ファイルの所有権を復旧することを試みません。これは、root でないユーザによって実行されるとき、デフォルトです。
-O file
file にアーカイブを書き込みます。
-o, - -create
出力モード。説明については、上記を参照してください。
-p, - -pass-through
パススルーモード。説明については、上記を参照してください。
- -preserve-owner
(i モードのみ) ファイルの所有権を復旧します。これは、root のユーザによって実行されるとき、デフォルトです。
- -quiet
不要なメッセージを抑制します。
-R [ user][ :][ group], - -owner [ user][ :][ group]
出力でファイルの所有者、そして/または、グループを設定します。グループがユーザなしで (例えば、 -R :wheel) 指定されるなら、グループは、ユーザなしで、設定されます。ユーザがグループなして、後続するコロンで指定されるなら、 (例えば、 -R root:) グループは、ユーザのデフォルトグループに設定されます。ユーザが後続するコロンなしで指定されるなら、ユーザは、グループなしで設定されます。 -i-p モードでは、スーパユーザだけが、このオプションを使用できます。 (互換性のために、コロンの代わりにピリオドを使用することができます。)
-r
(all モード) インタラクティブにファイルの名前を変更します。各ファイルに関しては、プロンプトは、ファイルの名前を含んで /dev/tty に書き込まれ、行は、 /dev/tty から読み込まれます。読み込まれた行が空白であるなら、ファイルは、スキップされます。行が単一のピリオドを含んでいるなら、ファイルは、普通に処理されます。そうでなければ、行は、ファイルの新しい名前になるよう取られます。
-t, - -list
(i モードのみ) アーカイブの内容を stdout (標準出力) にリストします: 内容をディスクに復旧しません。
-u, - -unconditional
(i と p モード) 無条件に、既存のファイルを上書きします。通常、古いファイルは、ディスク上の新しいファイルを上書きしません。
-V, - -dot
処理される様子をファイル毎に標準エラー (stderr) に 1 ドットを印刷します。 -v より優先されます。
-v, - -verbose
それが処理されるとき、各ファイルの名前を stderr (標準エラー) に印刷 (出力) します。 -t で、各ファイルの詳細なリストを提供します。
- -version
プログラムバージョン情報を印刷して、終了します。
-y
(o モードのみ) アーカイブを書き込む前に、bzip2 コンパチブル圧縮でアーカイブを圧縮します。入力モードで、このオプションは、無視されます。 bzip2 圧縮は、入力のときに自動的に認識されます。
-Z
(o モードのみ) アーカイブを書き込む前に compress コンパチブル圧縮でアーカイブを圧縮します。入力モードで、このオプションは、無視されます。圧縮は、入力のときに自動的に認識されます。
-z
(o モードのみ) アーカイブを書き込む前に gzip コンパチブル圧縮でアーカイブを圧縮します。入力モードで、このオプションは、無視されます。 gzip 圧縮は、入力のときに自動的に認識されます。

終了ステータス

The cpio utility exits 0 on success, and >0 if an error occurs.

環境変数

次のの環境変数が、 cpio の実行に影響します:
LANG
使用するロケール。詳細については、 environ(7) を参照してください。
TZ
日付を表示するとき使用するタイムゾーン。詳細については、 environ(7) を参照してください。

使用例

伝統的に、 cpio コマンドは、 find(1) コマンドと連動してファイルの階層構造をコピーするために使用されます。次の最初の例は、 src から dest にすべてのファイルを単にコピーしています:
find src | cpio -pmud dest

find(1) コマンドのオプションを慎重に選択して、他の標準のユーティリティとそれを結合することによって、ファイルをコピーする非常によい制御を実行することが可能です。次の例は、2 日間以上前で、名前が特定のパターンにマッチしている src から dest にファイルをコピーします:

find src -mtime +2 | grep foo[bar] | cpio -pdmu dest

次の例は、2 日間以上前で、“foobar”という言葉を含んでいる src から dest にファイルをコピーします:

find src -mtime +2 | xargs grep -l foobar | cpio -pdmu dest

互換性

モードオプション i, o と p とオプション a, B, c, d, f, l, m, r, t, u と v は、SUSv2 に適合します。

古い POSIX.1 規格は、 -i, -o-p がけが、コマンドラインのオプションとして解釈されると明記されています。それぞれ、修飾子の文字のリストの単一の引数を取ります。例えば、標準の構文は、 -imu を許可していますが、 mu-i への唯一の修飾子であるので (それらは、それだけでは、正しいコマンドラインのオプションではありません)、 -miu または -i -m -u をサポートしていません。この実装によってサポートされた構文は、標準で後方互換性があります。最も良い互換性のために、スクリプトは、それら自体を標準の構文に限定するべきです。

規格

cpio コマンドに対して現在の POSIX 規格はありません。それは、 ISO/IEC 9945-1:1996 (“POSIX.1”) に登場しましたが、 IEEE Std 1003.1-2001 (“POSIX.1”) から落とされました。

cpio、ustar と pax 交換ファイル形式は、pax コマンドのために IEEE Std 1003.1-2001 (“POSIX.1”) によって定義されています。

歴史

オリジナルの cpiofind ユーティリティは、AT&T の Unix サポートグループで働いている間に Dick Haight によって書かれました。それらは、1977 年に、 AT&T 内で使用するために開発された“Programmer's Work Bench”システムの PWB/UNIX 1.0 ではじめて登場しました。それらは、1981 年に System III Unix の一部として AT&T の外部で最初にリリースされました。結果として、AT&T の外側で知られていませんでしたが、 cpio は、実際 tar より前に作成されていました。

これは、 libarchive(3) ライブラリに基づく完全な再実装です。

バグ

cpio アーカイブ形式には、いくつかの基本的な制限があります: それは、数値だけで、ユーザ名とグループ名を保存していません。結果として、異なったユーザとグループの番号付けがあるシステム間でファイルを移送するために確実に使用することができません。古い cpio 形式は、現代のシステムでは不十分ですが、ユーザとグループ番号を 16 ビットまたは 18 ビットに制限しています。 cpio アーカイブ形式は、最大 8 つのギガバイトのファイルをサポートできる、“odc”変異型を除いて、4 ギガバイト以上のファイルをサポートすることができません。
October 7, 2012 FreeBSD