このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】アーカイブからファイルを抽出する:cpioコマンド

cpioコマンドの概要

 「cpio」コマンドは、アーカイブファイルの作成、リスト、および抽出を行うためのユーティリティです。cpioは、tarと同様に、複数のファイルを一つのアーカイブファイルにまとめたり、そのアーカイブファイルからファイルを抽出するために使用されます。cpioは標準入力またはファイルリストからファイルを読み取り、それらをアーカイブに格納するか、アーカイブから抽出します。

主なオプションと説明

オプション説明
-iアーカイブからファイルを抽出する(input)
-oファイルをアーカイブにコピーする(output)
-pディレクトリ間でファイルをコピーする(pass)
主なオプションと説明

コマンドの使用例と解説

1.ファイルの作成

 まず、アーカイブするファイルを作成し、「ls」コマンドで作成したファイルとディレクトリを確認します。

以下のコマンドを実行します。

  • date | tee file1.txt file2.txt」コマンド
  • ls」コマンド
user01@ubuntu-vm:~$ date | tee file1.txt file2.txt
2024年  6月  2日 日曜日 03:52:38 JST
user01@ubuntu-vm:~$ ls
file1.txt  snap          テンプレート  ドキュメント  ピクチャ      公開
file2.txt  ダウンロード  デスクトップ  ビデオ        ミュージック

2.カレントディレクトリにあるファイルとディレクトリからアーカイブを作成する。

・「ls | cpio -o > /tmp/backup.cpio」コマンドを実行し、「ls -l /tmp/backup.cpio」コマンドで確認します。

user01@ubuntu-vm:~$ ls | cpio -o > /tmp/backup.cpio
2 ブロック
user01@ubuntu-vm:~$ ls -l /tmp/backup.cpio
-rw-rw-r-- 1 user01 user01 1024  6月  2 03:54 /tmp/backup.cpio

3.ディレクトリの作成と移動

ディレクトリを作成して、作成したディレクトリに移動します。

次のコマンドを実行します。

・「mkdir dir」コマンドを実行

・「cd dir」コマンドを実行

user01@ubuntu-vm:~$ mkdir dir
user01@ubuntu-vm:~$ cd dir
user01@ubuntu-vm:~/dir$ 

4.アーカイブからファイルとディレクトリを抽出する。

・「cpio -i < /tmp/backup.cpio」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~/dir$ cpio -i < /tmp/backup.cpio
2 ブロック
user01@ubuntu-vm:~/dir$ ls -l
合計 44
-rw-rw-r-- 1 user01 user01   43  6月  2 04:04 file1.txt
-rw-rw-r-- 1 user01 user01   43  6月  2 04:04 file2.txt
drwx------ 2 user01 user01 4096  6月  2 04:04 snap
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 ダウンロード
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 テンプレート
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 デスクトップ
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 ドキュメント
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 ビデオ
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 ピクチャ
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 ミュージック
drwxr-xr-x 2 user01 user01 4096  6月  2 04:04 公開

5.作成したファイルとディレクトリの削除

この演習で作成したファイルとディレクトリを削除します。

1つ上の階層に移動します。

・「cd ..」コマンドを実行します。

・「rm -r file* dir」コマンドを実行して、「ls」コマンドで削除されたかを確認します。

user01@ubuntu-vm:~$ rm -r file* dir
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 「cpio」コマンドは、アーカイブファイルの作成、リスト、および抽出を行うための強力なツールです。以下の表を参考に、適切なオプションを使用してファイルをアーカイブに格納したり、アーカイブから抽出したりすることができます。

これらのオプションを組み合わせることで、様々なアーカイブ操作やファイル管理が可能になります。

オプション説明
-iアーカイブからファイルを抽出する
-oファイルをアーカイブにコピーする
-pディレクトリ間でファイルをコピーする
主なオプションと説明