概要
cpioは、標準入力からファイルリストを読み取るか、標準出力にアーカイブを書き込む方式で動作するストリーム指向のアーカイバです。これは、他のコマンド(例: find)とパイプで連携して使用される場合に強力な柔軟性を提供します。
主な特徴
- 3つの主要な動作モード:コピーアウト(-o)、コピーイン(-i)、コピーパス(-p)
- パイプを介した柔軟なファイルリスト処理
- さまざまなアーカイブ形式をサポート
- バックアップ、復元、ディレクトリ構造のコピーに活用
主なオプション
cpioは、動作モードを指定するオプションが必須であり、その他にもさまざまな補助オプションを提供します。
動作モード
一般オプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`cpio` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
cpioの3つの主要モードを活用したさまざまな使用例です。
現在のディレクトリのすべてのファイルをアーカイブにまとめる
find . -print0 | cpio -ov0 > archive.cpio
findコマンドで現在のディレクトリのすべてのファイルリストを生成し、それをcpio -ovコマンドでarchive.cpioファイルにアーカイブします。-0オプションは、ファイル名にスペースが含まれていても安全に処理します。
アーカイブからファイルを抽出する
cpio -ivd < archive.cpio
作成されたarchive.cpioファイルからすべてのファイルを現在のディレクトリに抽出します。-dオプションは、必要なディレクトリを自動的に作成します。
ディレクトリ構造を別の場所にコピーする
find . -depth -print0 | cpio -pd0v /new/directory
現在のディレクトリのすべてのファイルとディレクトリ構造を/new/directoryパスにコピーします。-pモードはアーカイブを作成せずに直接コピーし、-dはディレクトリ作成、-vは詳細表示を意味します。
特定のパターンのファイルのみをアーカイブから抽出する
cpio -ivd 'report*' < archive.cpio
archive.cpioから「report」で始まるファイルのみを抽出します。ワイルドカードを使用できます。
ヒントと注意点
cpioは強力なツールですが、正しい使い方を習得することが重要です。
cpio使用時の便利なヒント
- 「find」コマンドとの連携: cpioはファイルリストを標準入力で受け取るため、「find」コマンドを使用して複雑な条件でファイルリストを生成し、それをcpioにパイプするのが一般的です。
- 「-0」オプションの活用: ファイル名にスペースや特殊文字が含まれる可能性がある場合、「find -print0」と「cpio -0」を組み合わせてファイル名が正しく処理されるようにすることが重要です。
- モード選択の重要性: 「-o」、「-i」、「-p」の3つのモードはそれぞれ異なる目的を持つため、作業に適した正確なモードを選択する必要があります。
- 絶対パスと相対パス: cpioはアーカイブに保存されたパスをそのまま使用するため、アーカイブ作成時に「find .」のように相対パスを使用すると、抽出時に現在のディレクトリに対して相対的に抽出されます。絶対パスでアーカイブすると、抽出時にも絶対パスに従います。