コピーするファイルの存在するディレクトリに移動します。
書き込み可能なテープをテープドライブに挿入します。
ファイルをテープにコピーします。
$ ls | cpio -oc> /dev/rmt/n |
ls |
cpio コマンドにファイル名のリストを渡す。 |
cpio -oc |
cpio コマンドがコピーアウトモード (-o) で動作し、ASCII 文字形式 (-c) でヘッダー情報を書き込むように指定する。これらのオプションにより他のベンダーのシステムとの互換性を保つ。 |
> /dev/rmt/n |
出力ファイルを指定する。 |
ディレクトリ内のすべてのファイルは、指定したドライブ内のテープにコピーされ、テープ上の既存のファイルが上書きされます。コピーされた合計ブロック数が表示されます。
ファイルがテープにコピーされていることを確認します。
$ cpio -civt < /dev/rmt/n |
-c |
ファイルを ASCII 文字形式で読み込むように指定する。 |
-i |
cpio がコピーインモードで動作することを指定する。この時点ではファイルをリストするだけ。 |
-v |
ls -l コマンドの出力と同様の形式で出力を表示する。 |
-t |
指定したテープドライブ内のテープ上にあるファイルの内容一覧を表示する。 |
< /dev/rmt/n |
既存の cpio アーカイブの入力ファイルを指定する。 |
テープをドライブから取り出します。ファイル名をテープのラベルに記入します。
次の例では、 /export/home/kryten ディレクトリ内のすべてのファイルをテープドライブ 0 のテープにコピーする方法を示します。
$ cd /export/home/kryten $ ls | cpio -oc> /dev/rmt/0 16 blocks $ cpio -civt < /dev/rmt/0 -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, filea -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, fileb -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, filec drwxr-xr-x 2 kryten staff 0 Oct 7 08:17 2003, letters drwxr-xr-x 2 kryten staff 0 Oct 7 08:18 2003, reports 16 blocks $ |
テープの内容一覧を表示するには、cpio コマンドがアーカイブ全体を処理する必要があるため、かなりの時間がかかります。
次の例では、ドライブ 0 のテープに含まれるファイルのリストを表示します。
$ cpio -civt < /dev/rmt/0 -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, filea -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, fileb -r--r--r-- 1 kryten staff 76 Oct 7 08:17 2003, filec drwxr-xr-x 2 kryten staff 0 Oct 7 08:17 2003, letters drwxr-xr-x 2 kryten staff 0 Oct 7 08:18 2003, reports 16 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 |