コピーするファイルの存在するディレクトリに移動します。
書き込み保護をしていないテープをテープドライブに挿入します。
ファイルをテープにコピーします。
$ ls | cpio -oc> /dev/rmt/n |
ls |
cpio コマンドにファイル名のリストを渡す。 |
cpio -oc |
cpio コマンドがコピーアウトモード (-o) で動作し、ASCII 文字形式 (-c) でヘッダー情報を書き込むように指定する。このオプションにより他のベンダーのシステムとの互換性を保つ。 |
> /dev/rmt/n |
出力ファイルを指定する。 |
ディレクトリ内のすべてのファイルは、指定したドライブ内のテープにコピーされ、テープ上の既存のファイルが上書きされます。コピーされた合計ブロック数が表示されます。
ファイルがテープにコピーされていることを確認します。
$ cpio -civt < /dev/rmt/n |
テープをドライブから取り出して、テープラベルにファイル名を記入します。
次の例では、 /export/home/kryten ディレクトリ内のすべてのファイルをテープドライブ 0 のテープにコピーする方法を示します。
$ cd /export/home/kryten $ ls | cpio -oc> /dev/rmt/0 92 blocks $ cpio -civt < /dev/rmt/0 -rw------t 1 kryten users 400 Jul 14 09:28 2001, b drwx--x--x 2 kryten users 0 Jul 14 09:26 2001, letters -rw------t 1 kryten users 10000 Jul 14 09:26 2001, letter1 -rw------t 1 kryten users 10100 Jul 14 09:26 2001, letter2 -rw------t 1 kryten users 11100 Jul 14 09:27 2001, letter3 -rw------t 1 kryten users 12300 Jul 14 09:27 2001, letter4 drwx--x--x 2 kryten users 0 Jul 14 09:27 2001, memos -rw------t 1 kryten users 400 Jul 14 09:28 2001, memosmemoU -rw------t 1 kryten users 500 Jul 14 09:28 2001, memosmemoW -rw------t 1 kryten users 100 Jul 14 09:27 2001, memosmemoX -rw------t 1 kryten users 200 Jul 14 09:28 2001, memosmemoY -rw------t 1 kryten users 150 Jul 14 09:28 2001, memosmemoZ drwx--x--x 2 kryten users 0 Jul 14 09:24 2001, reports 92 blocks $ |
内容一覧を表示するには、cpio コマンドがアーカイブ全体を処理する必要があるため、かなりの時間がかかります。
テープをテープドライブに挿入します。
$ cpio -civt < /dev/rmt/n |
-c |
ファイルを ASCII 文字形式で読み込むように指定する。 |
-i |
cpio がコピーインモードで動作することを指定する。この時点ではファイルをリストするだけ。 |
-v |
ls -l コマンドの出力と同様の形式で出力を表示する。 |
-t |
指定したテープドライブ内のテープ上にあるファイルの内容一覧を表示する。 |
< /dev/rmt/n |
既存の cpio アーカイブの入力ファイルを指定する。 |
次の例では、ドライブ 0 のテープに含まれるファイルのリストを表示します。
$ cpio -civt < /dev/rmt/0 drwx--x--x 2 kryten users 0 Jul 14 09:34 2001, answers -rw------t 1 kryten users 800 Jul 14 09:36 2001, b drwx--x--x 2 kryten users 0 Jul 14 09:32 2001, sc.directives -rw------t 1 kryten users 200000 Jul 14 09:35 2001, direct241 drwx--x--x 2 kryten users 0 Jul 14 09:32 2001, tests -rw------t 1 kryten users 800 Jul 14 09:36 2001, test13times 396 blocks |
相対パス名を使用してアーカイブを作成した場合、入力ファイルはそれを取り出すときに現在のディレクトリ内のディレクトリとして作成されます。ただし、絶対パス名を指定してアーカイブを作成した場合は、それと同じ絶対パス名を使用してシステム上でファイルが再び作成されます。
絶対パス名を使用すると、自分のシステム上にある元のファイルを上書きすることになるので危険です。
ファイルを置きたいディレクトリに移動します。
テープをテープドライブに挿入します。
$ cpio -icvd < /dev/rmt/n |
-i |
標準入力からファイルを取り出す。 |
-c |
ファイルを ASCII 文字形式で読み込むように指定する。 |
-v |
取り出されたファイルを ls コマンドの出力と同様の形式で表示する。 |
-d |
必要に応じてディレクトリを作成する。 |
< /dev/rmt/n |
出力ファイルを指定する。 |
ファイルがコピーされていることを確認します。
$ ls -l |
次の例では、ドライブ 0 のテープからすべてのファイルを取り出す方法を示します。
$ cd /var/tmp $ cpio -icvd < /dev/rmt/0 answers sc.directives tests 8 blocks $ ls -l |
ファイルを置きたいディレクトリに移動します。
テープをテープドライブに挿入します。
テープからファイルのサブセットを取り出します。
$ cpio -icv "*file" < /dev/rmt/n |
-i |
標準入力からファイルを取り出す。 |
-c |
ヘッダーを ASCII 文字形式で読み込むように指定する。 |
-v |
取り出されたファイルを ls コマンドの出力と同様の形式で表示する。 |
"* file" |
パターンに一致するすべてのファイルを現在のディレクトリにコピーするように指定する。複数のパターンを指定できるが、個々のパターンを二重引用符で囲まなければならない。 |
< /dev/rmt/n |
入力ファイルを指定する。 |
詳細は、cpio(1) のマニュアルページを参照してください。
ファイルがコピーされていることを確認します。
$ ls -l |
次の例では、末尾に接尾辞 chapter が付いているすべてのファイルをドライブ 0 のテープから取り出します。
$ cd /home/smith/Book $ cpio -icv "*chapter" < /dev/rmt/0 Boot.chapter Directory.chapter Install.chapter Intro.chapter 31 blocks $ ls -l |