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 -idmvRPMファイルから直接ファイルを展開できます。
バックアップ用途
$ find /etc -type f | cpio -ov > etc_backup.cpio設定ファイルなどをバックアップする用途に適しています。
注意点
tarに比べると習熟に少し慣れが必要- 圧縮機能は内蔵されていないため、
gzipなどと組み合わせる必要あり - ファイルリストが必要なため、
findやlsとの連携が前提
まとめ
cpioは、柔軟なパイプ処理に特化したUNIX伝統のアーカイブツールであり、RPMパッケージやシステムファイルの管理、カスタムスクリプトとの連携において今でも有用です。やや扱いにくい面もありますが、システム管理やスクリプト構築を行うユーザーにとっては頼れる存在です。






