cpio:伝統と互換性のアーカイバー

目次
cpioコマンドについての概要と詳細
cpioとは
cpio
は、UNIX系システムで古くから利用されているアーカイブ作成・展開ツールです。ファイルのバックアップや転送、ソフトウェアのインストールなどに使われ、特にRPMパッケージ管理などでも内部的に活用されています。tar
に似た機能を持ちつつも、ファイルリストをパイプで受け取る柔軟性が特徴です。
主な特徴
- パイプ処理が基本:
find
などと組み合わせて使う設計 - アーカイブ形式が多彩:bin、odc、newc、crc など複数のフォーマットに対応
- 標準入力/出力を活用:柔軟なファイル操作が可能
- RPMとの親和性:パッケージ展開・検査などに利用される
インストール方法
Debian/Ubuntu系
$ sudo apt install cpio
Fedora系
$ sudo dnf install cpio
基本的な使い方
ファイルのアーカイブ作成
$ find . -type f | cpio -o > archive.cpio
-o
:出力モード(アーカイブ作成)
アーカイブの展開
$ cpio -id < archive.cpio
-i
:入力モード(アーカイブ展開)-d
:必要なディレクトリを自動作成
アーカイブの内容を確認
$ cpio -it < archive.cpio
アーカイブに含まれるファイル一覧を表示します。
よく使うオプション
-v
:詳細表示-u
:上書き確認なしで復元--format=xxx
:指定フォーマットでアーカイブ(例:newc, crc)
cpio形式の違い
- bin:古典的なバイナリ形式(非推奨)
- odc:POSIX標準互換
- newc:近代的な形式でファイル名・サイズ制限が緩和
- crc:newc + CRCチェック付き
実用例
RPMパッケージからファイルを抽出
$ rpm2cpio somepackage.rpm | cpio -idmv
RPMファイルから直接ファイルを展開できます。
バックアップ用途
$ find /etc -type f | cpio -ov > etc_backup.cpio
設定ファイルなどをバックアップする用途に適しています。
注意点
tar
に比べると習熟に少し慣れが必要- 圧縮機能は内蔵されていないため、
gzip
などと組み合わせる必要あり - ファイルリストが必要なため、
find
やls
との連携が前提
まとめ
cpio
は、柔軟なパイプ処理に特化したUNIX伝統のアーカイブツールであり、RPMパッケージやシステムファイルの管理、カスタムスクリプトとの連携において今でも有用です。やや扱いにくい面もありますが、システム管理やスクリプト構築を行うユーザーにとっては頼れる存在です。