Solaris のシステム管理 (デバイスとファイルシステム)

cpio コマンドを使用してファイルをテープにコピーする

Procedureディレクトリ内のすべてのファイルをテープにコピーする方法 (cpio)

  1. コピーするファイルの存在するディレクトリに移動します。

  2. 書き込み可能なテープをテープドライブに挿入します。

  3. ファイルをテープにコピーします。


    $ ls | cpio -oc > /dev/rmt/n
    
    ls

    cpio コマンドにファイル名のリストを渡します。

    cpio -oc

    cpio コマンドがコピーアウトモード (-o) で動作し、ASCII 文字形式 (-c) でヘッダー情報を書き込むように指定します。これらのオプションによりほかのベンダーのシステムとの互換性を保ちます。

    > /dev/rmt/n

    出力ファイルを指定します。

    ディレクトリ内のすべてのファイルは、指定したドライブ内のテープにコピーされ、テープ上の既存のファイルが上書きされます。コピーされた合計ブロック数が表示されます。

  4. ファイルがテープにコピーされたことを確認します。


    $ cpio -civt < /dev/rmt/n
    
    -c

    cpio コマンドがファイルを ASCII 文字形式で読み込むように指定します。

    -i

    cpio コマンドがコピーインモードで動作することを指定します。この時点ではファイルをリストするだけです。

    -v

    ls -l コマンドの出力と同様の形式で出力を表示します。

    -t

    指定したテープドライブ内のテープ上にあるファイルの内容リストを表示します。

    < /dev/rmt/n

    既存の cpio アーカイブの入力ファイルを指定します。

  5. テープをドライブから取り出します。ファイル名をテープのラベルに記入します。


例 28–8 ディレクトリ内のすべてのファイルをテープにコピーする (cpio)

次の例では、 /export/home/kryten ディレクトリ内のすべてのファイルをテープドライブ 0 のテープにコピーする方法を示します。


$ cd /export/home/kryten
$ ls | cpio -oc > /dev/rmt/0
1280 blocks
$ cpio -civt < /dev/rmt/0
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, filea
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, fileb
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, filec
drwxr-xr-x    2 kryten   staff           0 Jul 14 13:52 2010, letters
drwxr-xr-x    2 kryten   staff           0 Jul 14 13:52 2010, reports
1280 blocks

Procedureテープ上のファイルのリストを表示する方法 (cpio)


注 –

テープの内容リストを表示するには、cpio コマンドがアーカイブ全体を処理する必要があるため、かなりの時間がかかります。


  1. テープをテープドライブに挿入します。

  2. テープ上のファイルのリストを表示します。


    $ cpio -civt < /dev/rmt/n
    

例 28–9 テープ上のファイルのリストを表示する (cpio)

次の例では、ドライブ 0 のテープに含まれるファイルのリストを表示します。


$ cpio -civt < /dev/rmt/0
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, filea
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, fileb
-r--r--r--    1 kryten   staff      206663 Jul 14 13:52 2010, filec
drwxr-xr-x    2 kryten   staff           0 Jul 14 13:52 2010, letters
drwxr-xr-x    2 kryten   staff           0 Jul 14 13:52 2010, reports
1280 blocks

Procedureテープからすべてのファイルを取り出す方法 (cpio)

相対パス名を使用してアーカイブを作成した場合、入力ファイルはそれを取り出すときに現在のディレクトリ内のディレクトリとして作成されます。ただし、絶対パス名を指定してアーカイブを作成した場合は、それと同じ絶対パス名を使用してシステム上でファイルが再び作成されます。


注意 – 注意 –

絶対パス名を使用すると、自分のシステム上にある元のファイルを上書きすることになるので危険です。


  1. ファイルを置きたいディレクトリに移動します。

  2. テープをテープドライブに挿入します。

  3. テープからすべてのファイルを抽出します。


    $ cpio -icvd < /dev/rmt/n
    
    -i

    標準入力からファイルを取り出します。

    -c

    cpio コマンドがファイルを ASCII 文字形式で読み込むように指定します。

    -v

    取り出されたファイルを ls コマンドの出力と同様の形式で表示します。

    -d

    必要に応じてディレクトリを作成します。

    < /dev/rmt/n

    出力ファイルを指定します。

  4. ファイルがコピーされたことを確認します。


    $ ls -l
    

例 28–10 テープからすべてのファイルを取り出す (cpio)

次の例では、ドライブ 0 のテープからすべてのファイルを取り出す方法を示します。


$ cd /var/tmp
cpio -icvd < /dev/rmt/0
answers 
sc.directives 
tests
8 blocks
$ ls -l

Procedureテープから特定のファイルを取り出す方法 (cpio)

  1. ファイルを置きたいディレクトリに移動します。

  2. テープをテープドライブに挿入します。

  3. テープからファイルのサブセットを取り出します。


    $ cpio -icv "*file" < /dev/rmt/n
    
    -i

    標準入力からファイルを取り出します。

    -c

    cpio コマンドを使用してヘッダーを ASCII 文字形式で読み込むように指定します。

    -v

    取り出されたファイルを ls コマンドの出力と同様の形式で表示します。

    "*file "

    パターンに一致するすべてのファイルを現在のディレクトリにコピーするように指定します。複数のパターンを指定できますが、個々のパターンを二重引用符で囲まなければなりません。

    < /dev/rmt/n

    入力ファイルを指定します。

    詳細は、cpio(1) のマニュアルページを参照してください。

  4. ファイルがコピーされたことを確認します。


    $ ls -l
    

例 28–11 指定したファイルをテープから取り出す (cpio)

次の例では、末尾に接尾辞 chapter が付いているすべてのファイルをドライブ 0 のテープから取り出します。


$ cd /home/smith/Book
$ cpio -icv "*chapter" < /dev/rmt/0
Boot.chapter 
Directory.chapter 
Install.chapter 
Intro.chapter
31 blocks
$ ls -l