Compaq OpenVMS
システム管理者マニュアル


前へ 次へ 目次 索引


10.7.3 テープ・ボリュームに対するワイルドカード文字の使用法

OpenVMS オペレーティング・システムでは,いくつかの制限がありますが,テープ・ボリュームに対するファイル指定でワイルドカード文字を使用することができます。

OpenVMS 拡張ファイル名および標準ファイル名でのワイルドカード文字の使用方法を 表 10-6 に示します。

表 10-6 テープ・ボリュームに使用できるワイルドカード文字
ワイルド
カード文字
OepnVMS
拡張ファイル名
標準
ファイル名
説明
アスタリスク (*) X X OpenVMS 拡張ファイル名では,ファイル名およびファイル・タイプ・フィールドの任意の位置にアスタリスクを使用して,フィールドの一部または全体と見なすことができる。また,バージョン番号フィールドにもアスタリスクを使用することができる。

標準ファイル名では,1 つのフィールドにアスタリスクは 1 つしか使用できない。

パーセント
記号 (%)
X   OpenVMS 拡張ファイル名においてパーセント記号を使用した場合,フィールド内の対応する文字位置の文字を任意の一文字と見なすことができる。バージョン番号フィールドでパーセント記号を使用することはできない。

OpenVMS 拡張ファイル名の場合は,ファイル名とファイル・タイプ・フィールドのそれぞれを 39 文字の長さまで指定できるのに対し,標準ファイル名の長さは最大で 17 文字です。

次の例では,DIRECTORY コマンドのファイル指定でワイルドカード文字を使用して,テープ・ボリュームのファイルを検索する方法を紹介します。ディスク・ファイルとテープ・ファイルとでは, DIRECTORY コマンドの働きが異なります。



  1. $ DIRECTORY MFA1:*.*;*
    


    システムにボリューム・セットの検索を指示している例。ファイル指定にアスタリスクが使用されているので,システムは OpenVMS 拡張ファイル名と標準ファイル名の両方を返す。また,テープ・ファイル名の方は二重引用符で囲まれて返される。


  2. $ DIRECTORY MTA1:%*.*;*
    $ DIRECTORY MTA0:*.%*;*
    


    これら 2 つのコマンドにはパーセント記号が使用されている。標準ファイル名に対してパーセント記号は無効であるため,検索は OpenVMS 拡張ファイル名にしか働かない。2 つ目のコマンドの場合,ファイル・タイプ・フィールドには少なくとも 1 文字が含まれている必要がある。ファイル・タイプを持たないファイルが返されることはない。


  3. $ DIRECTORY MTA0:*.;*
    


    この例では,ファイル・タイプがない標準ファイル名と OpenVMS 拡張ファイル名を持つファイルを検索している。

10.7.4 テープ・ボリュームからのファイルの読み込み

テープ・ファイルにアクセスして読み込みを行おうとすると,テープは,ファイル・ヘッダ・ラベルの後のファイル・セクションの先頭に位置付けられます。 また,テープ・ボリューム上のファイルにアクセスして,ファイル・セクションのデータではなく,ヘッダ・ラベルの属性だけ読み取ろうとすると,プロセスに RMS 属性が返されます。 たとえばボリュームかファイル,またはファイルのリストに DIRECTORY/FULL コマンドが実行されたときにテープ・ファイル・システムが行うことは次のとおりです。

  1. ヘッダ・ラベルからファイル識別コードを選択する。

  2. プロセスにファイル属性を返す。

  3. 最後にアクセスされたファイルのヘッダ・ラベルの後にテープを位置付ける。

読み込みアクセスでオープンされたテープ・ファイルは,次のいずれかの方法で暗黙に,または明示的にクローズされます。

方法 説明
暗黙にクローズ ファイルの読み込み中にテープ・マークが検出された場合,ファイルは暗黙にクローズされる。テープ・ファイル・システムは,トレーラ・ラベルを読み取ってファイルをクローズし,次のファイル位置にテープを位置付ける。
明示的にクローズ ファイルのデータをすべて読み取る前にアクセスを終了した場合,ファイルは明示的にクローズされる。テープ・ファイル・システムはトレーラ・ラベルを読み取らずに,単にファイルをクローズする。テープのアクセス位置が変わることはない。


DCL の TYPE コマンドを使って,テープ・ボリュームのファイルを読み込み,その内容をターミナルに表示することができます。たとえば,TESTFILE.DOC;1 というファイルの内容を読み込む場合は,次のコマンドを使用します。このとき,ディレクトリ検索によって, TESTFILE.DOC;1 テープ・ファイルがテープ・ボリューム MTA1: に含まれる OpenVMS ファイルであることがわかっているものとします。


$ TYPE MTA1:TEST*.%*;*

ターミナルには次の情報が表示されます。


MTA1:TESTFILE.DOC;1 
 
This is a test file. 

10.7.5 テープ・ボリュームへのファイルの書き込み

テープ・ボリュームへのファイルの書き込みの場合,テープ・ファイル・システムはアクセス・チェックを行って,ラベルを書き込み,必要ならばボリュームを切り換えます。

10.7.5.1 既存ファイルを書き換える新しいファイルの書き込み

新しいファイルによって既存ファイルが書き換えられる場合, テープ・ファイル・システムは次のことを行います。

  1. 既存のファイルの満了日とアクセス制御フィールドをチェックする。

  2. 書き換えが可能な場合は,次のことを行う。

    1. 既存のファイルのヘッダ・ラベル・セットを書き換える。

    2. ファイル・セクションを作成する。

    3. トレーラ・ラベルを書き込む。

    4. 論理的なボリュームの終わり (EOV) を示すテープ・マーク 2 つを書き込む。

新しいファイルより後ろのファイルはすべて失われます。

書き込みアクセスでオープンしたテープ・ファイルをクローズするとき,テープ・ファイル・システムはドライバにコマンドを送って,ラベルと,論理的なボリュームの終わりを示すテープ・マーク 2 つを書き込みます。

10.7.5.2 ファイルの追加または更新

DCL を使用して既存のファイルに書き込みアクセスした場合,実際に行われるのは次に説明する追加または更新操作のいずれかです。

操作 説明
追加 追加を目的としたファイルのアクセスの場合,テープは,トレーラ・ラベルの前のテープ・マークの前に位置付けられる。そして,ファイルが追加され,クローズされると,ファイルの作成と同じ処理が行われる。
更新 更新を目的としたファイルのアクセスの場合,テープは,ヘッダ・ラベルの後のテープ・マークの後ろに位置付けられる。そして,ファイルが書き込まれ,クローズされると,ファイルの作成と同じ処理が行われる。

テープ・ファイルの更新または追加を行えるのは,バッファ・オフセットの長さとして値 0 がヘッダ・レベルに設定されている場合だけです。テープ・ファイルの実際の更新と追加方法については, 第 10.8 節 で説明します。

ファイルを更新するときに /OVERRIDE=EXPIRATION が指定されなかった場合,テープ・ファイル・システムは,書き込みを許可する前にファイルの満了日フィールドをチェックします。

また,ファイルの追加の場合は,追加先のファイルとその直後のファイル両方の満了日を調べ,いずれかのファイルが満了日に達していない場合,磁気テープ・ファイル・システムはファイルの追加を許可しません。


CREATE コマンドを使用してボリュームにアクセスし,書き込みを行うことができます。たとえば,テープ・ボリュームに新しいファイルを書き込む CREATE コマンドの例を次に示します。


$ CREATE MTA0:MYFILE

この例にあるコマンドに類似したコマンドを実行したら,続いて次の操作を行います。

  1. ファイルの内容を入力する。

  2. Ctrl/Z を押して,DCL コマンド・レベルを離れることなくファイルをクローズし,テープ・ボリュームにファイルを書き込む。

10.8 ファイルのコピーおよび転送

OpenVMS オペレーティング・システムには,情報転送の手助けをする機能が数多くあります。そのため,同じシステムばかりでなく,他のオペレーティング・システムとの間でもディスクやテープのファイルのコピーを行うことができます。

情報転送の方法の要約を 表 10-7 に示します。

表 10-7 情報転送の方法
方法 説明
DCL の COPY
コマンド
情報の転送で最もよく使われる方法。
CONVERT
ユーティリティ
ローカル・システムにおいて,順編成から索引編成などのようにファイルの編成を変更できる。
EXCHANGE
ユーティリティ
ローカル・システムにおいて,OpenVMS 以外のオペレーティング・システムでフォーマットされたディスク・ボリュームおよびテープ・ボリュームにアクセスできる。 EXCHANGE を使用して,フォーリン・ボリュームと標準的な Files--11 ボリュームの間でファイルの転送を行うことができる。
DCL の EXCHANGE/NETWORK コマンド ネットワークを介して,OpenVMS と他のオペレーティング・システムとの間でファイルの転送を行うことができる。 このコマンドは,OpenVMS を使用しているノードとOpenVMS を使用していないノードの間でファイルの転送を行う場合に,有用である。コピーされたファイルは,OpenVMS および他のオペレーティング・システムにおいて,それぞれ適したフォーマットを持つ。
BACKUP
ユーティリティ
テープの場合,ディレクトリ・ツリー全体,あるいは順編成ではないファイルをコピーする唯一の手段である。 BACKUP を使用したファイルのコピーについては, 第 11.13.2 項 を参照。

COPY コマンド,Exchange ユーティリティ,および DCL の EXCHANGE/NETWORK コマンドについては,次の項で説明します。

多くの場合,情報のコピーは,物理的な媒体の移動を伴わずに行うことができます。しかし,通信リンクで接続されていないシステム間でコピーを行うこともあります。このような場合は,別の場所に物理的にファイルを移動する必要があります。たとえば,テープ・リールやテープ・カートリッジ,あるいはディスク・パックなどの可搬型のボリュームにファイルをコピーし,そのボリュームを別の場所に持っていきます。

この節では,次の作業について説明します。

作業 参照箇所
ディスク・ボリュームへのファイルのコピー 第 10.8.1 項
テープ・ボリュームへのファイルのコピー 第 10.8.2 項
テープの終わり位置でのコピーの継続 第 10.8.3 項
EXCHANGE ユーティリティによるファイルのコピー 第 10.8.4 項
DCL の EXCHANGE/NETWORK コマンドによるネットワークを介したファイルの転送 第 10.8.5 項

10.8.1 ディスク・ボリュームへのファイルのコピー

ディスク・ボリュームにファイルをコピーするためには,次のことを行っておく必要があります。

  1. 第 9.3 節 で説明したボリュームの設定。

  2. ファイルを格納するためのディレクトリの作成。ディスクはランダム・アクセス・デバイスであり,ファイルはディレクトリに格納する必要がある。

ディスクからのコピーの場合

ディスク・ボリュームのファイルの省略時の形式は,Files-11 構造のレベル 2 の形式です。その他,RSX-11M や RSX-11M-PLUS,RSX-11D,IAS などの他の弊社オペレーティング・システムで使用されている Files-11 構造のレベル 1 形式でディスクを初期化することもできます。

ディスクから標準ラベルのディスク・ボリュームにファイルをコピーすると,次の項目に変更が加えられます。

COPY コマンドを使用して,省略時のディレクトリにあるすべてのファイルの最新バージョンを,同じボリュームの別のディレクトリにコピーすることができます。

テープからのコピーの場合

磁気テープのファイルの省略時の形式は,標準ラベルのボリュームの形式です。 OpenVMS システムは,ディスク・ファイルとして順編成,相対編成,および索引編成ファイルをサポートしていますが,標準ラベルのディスク・ボリュームには順編成ファイルしかコピーできません。また,有効なレコード形式は可変長と固定長だけです。

テープ・ファイル名を持つファイルを磁気テープからディスクにコピーする場合は, 出力ファイル名として標準の OpenVMS ファイル名を指定してください。出力側が OpenVMS ファイル名以外の場合,プロセスには次のエラー・メッセージが送られます。


RMS-F-FNM, error in file name

このメッセージは,テープ・ファイル名が有効な OpenVMS ファイル名ではないことを示しています。

/LOG 修飾子を指定した COPY コマンドが入力された場合,システムはファイルを 1 つコピーし終えるたびに現在の SYS$OUTPUT 装置にメッセージを送ります。 ファイルのコピーが正常に行われたか確認したい場合は, DIRECTORY コマンドを使用してください。



  1. CREATE/DIRECTORY DMA3:[PUBS]
    $ DEFINE P DMA3:[PUBS]
    $ COPY *.* P
    $ COPY [PRIMER]*.* P
    $ COPY [COMMANDS]*.* P
    


    この例では,CREATE/DIRECTORY コマンドで,DMA3: に [PUBS] という名前のディスク・ディレクトリを作成し,DEFINE コマンドで,DMA3:[PUBS] を論理名 P と定義している。そして,COPY コマンドを使い,現在の省略時のディレクトリと [PRIMER],[COMMANDS] ディレクトリに含まれるすべてのファイルの最新バージョンを,新たに作成したディレクトリにコピーしている。


  2. $ COPY *.* DMA5:[PRIVATE]
    


    この例では,ディスク装置 DMA5: がプロセスに割り当て済みで,ディスク・ボリュームが初期化されていること,さらには,そのボリュームが DMA:5 にマウント済みであることが前提になる。また, PRIVATE というディレクトリをあらかじめボリュームに作成しておく必要がある。


  3. $ COPY/LOG MTA1:"%&*?!SKI! """ SEASON.DAT
    %COPY-S-COPIED, MTA1:[]"%&*?!SKI! """.;1 
    copied to WRKD:[MANUAL]SEASON.DAT;1 (120 records)
    


    この例では COPY/LOG コマンドで,%&*?!SKI!#" (# はスペース) というテープ・ファイルを省略時のディスクの省略時のディレクトリ WRKD:[MANUAL] の SEASON.DAT というファイルにコピーしている。ディスクにファイルをコピーする場合は,新しいファイル名を指定しなければならない。 OpenVMS は,ファイル指定で指定されなかった空き部分を省略時の値で埋める。
    /LOG 修飾子が指定されているため,システムは,テープ・ボリューム MTA1: のファイルを指定どおりにコピーしたことを確認するメッセージを返す。またこのメッセージには,コピーしたレコード数も示される。


  4. $ COPY/LOG MTA0:*.* *
    %COPY-S-COPIED, MTA0:[]TASTETEST.DAT;1 
    copied to WRKD:[FOOD]TASTETEST.DAT;1 (249 records)
    %COPY-S-COPIED, MTA0:[]ALLAT;1 copied to WRKD:[FOOD]ALALL;1 (48 records)
    %COPY-S-NEWFILES, 2 files created
    


    この例では,ファイル名とファイル・タイプ・フィールドにワイルドカード文字を使用している。テープ・ボリュームからディスク・ボリュームにコピーされたファイルは 2 つだけである。


  5. $ COPY/LOG MTA1:*.* [EX]
    %COPY-S-COPIED, MTA1:[].DAT;1 copied to WRKD:[EX]TEST.DAT21 records
    %COPY-E-OPENOUT, error opening WRKD:[EX]"%&*()!SKI! """.;1 as output
    -RMS-F-FNM, error in file name
    %COPY-W-NOTCOPIED, MTA1:[]"%&*()!SKI! """.;1 not copied
    %COPY-E-OPENOUT, error opening WRKD:[EX]"SANFRAN%%%""".;1 as output
    -RMS-F-FNM, error in file name
    %COPY-W-NOTCOPIED, MTA1:[]"SANFRAN%%%""".;1 not copied
    %COPY-S-COPIED, MTA1:[]OPENVMS_LONG$FILE_NAME.LONG_EXT;1 
    copied to WRKD$:[EX]OPENVMS_LONG$FILE_NAME.LONG_EXT;1 (80 records)
    %COPY-S-COPIED, MTA1:[]C6.JOU;1 copied to WRKD:[EX]C6.JOU;1 (4 records)
    %COPY-S-NEWFILES, 2 files created
    


    この COPY/LOG コマンドは,テープ・ボリューム MTA1: にマウントされているボリュームのすべてのファイルを現在の省略時のディスクの省略時のディレクトリ WRKD:[EX] にコピーするよう指示している。しかしながら,実際にはテープ・ファイル名のファイルはコピーされず,代わりに,エラー・メッセージが返されている。

  6. $ COPY/FTP sys$login:login.com - $_ system.bldg.corp.com"username password"::sys$login:login.tmp
    この例では,SYS$LOGIN:LOGIN.COM という OpenVMS RMS ファイルを, TCP/IP 接続を介して,SYS$LOGIN:LOGIN.TMP というリモート・ファイルに転送し,同時にリモート・システムにおけるユーザ名とパスワードを指定している。


前へ 次へ 目次 索引