ファイルをアーカイブするのには、tarコマンドの他にcpioコマンドがあります。
[コマンド書式]
cpio -フラグ オプション
cpioコマンドの主なフラグは次のとおりです。
フラグ | 説明 |
---|---|
-i < アーカイブ | アーカイブからファイルを取り出します |
-o > アーカイブ | アーカイブを作成します |
-p 出力先ディレクトリ アーカイブ対象ファイル | ファイルを別のディレクトリにコピーします |
cpioコマンドの主なオプションは次のとおりです。
オプション | 説明 |
---|---|
-A | 既存のアーカイブにファイルを追加します |
-d | 必要ならディレクトリを作成します |
-v | ファイル名の一覧を表示します |
cpioコマンドは入力ファイルや出力ファイルを直接アーカイブ対象として指定することが出来ず、標準入力や標準出力を使用します。
そのため、findやlsコマンドなどでアーカイブにまとめるファイル(アーカイブ対象)の一覧を取り出し、
パイプ(|)を使用してcpioコマンドの標準入力に渡します。また、作成するアーカイブ(出力ファイル)はリダイレクトの「>」を使用して指定します。
[コマンド実行例]カレントディレクトリにあるhoge[1234].txtファイルをhogearc.cpioにアーカイブします。
$ ls hoge*
hoge1.txt hoge2.txt hoge3.txt hoge4.txt
$ ls hoge* | cpio -o > hogearc.cpio
cpio: File hogearc.cpio grew, 663552 new bytes not copied
2593 blocks
作成したhogearc.cpioのリストを表示します。
$ cat hogearc.cpio | cpio -iv
$ cpio -iv < hogearc.cpio
hoge1.txt
hoge2.txt
hoge3.txt
hoge4.txt
cpio: hogearc.cpio not created: newer or same age version exists
hogearc.cpio
2593 blocks
ddコマンドは、ファイルシステムに関係なく、データを直接コピーすることができるコマンドです。
CD-ROM等のデバイスのデータをそのまま取り扱うことができ、さらに別のデバイスにコピーする事が可能です。
ddコマンドの主なオプションは次のとおりです。
オプション | 説明 |
---|---|
if=入力ファイル | 入力側ファイル(デバイス)を指定します 特に指定しない場合は標準入力が指定されます |
if=出力ファイル | 出力側ファイル(デバイス)を指定します 特に指定しない場合は標準出力が指定されます |
bs=バイト数 | 入出力のブロックサイズ(一度に読み書きをするバイト数)を指定します 標準では512バイトです |
bs=バイト数 | 入出力のブロックサイズ(一度に読み書きをするバイト数)を指定します 標準では512バイトです |
count=回数 | bsで指定したブロック数をコピーする回数を指定します |
[コマンド実行例]CD-ROMからイメージファイル(image.iso)を作成します
dd if=/dev/cdrom of=image.iso
また、特定サイズのダミーファイルを作成したい場合、ddコマンドで全データがnullであるファイル「/dev/zero」を
入力ファイルに指定することで作成することができます。
さらに、「/dev/zero」を入力ファイルに指定し、出力ファイルに既存ファイルを指定することでデータの上書きを行うことも可能です。
[コマンド実行例]512バイト*10000=約5MBのファイルを作成します
$ dd if=/dev/zero of=ddmake.dat count=10000
10000+0 レコード入力
10000+0 レコード出力
5120000 バイト (5.1 MB) コピーされました、 0.0600579 秒、 85.3 MB/秒
$ ls -l ddmake.dat
-rw-rw-r– 1 test test 5120000 11月 20 16:19 ddmake.dat