前へ | 次へ | 目次 | 索引 |
ディレクトリ構造のどこからでも,そのディレクトリ構造の中の別のディレクトリやサブディレクトリを参照することができます。この場合,参照したいディレクトリやサブディレクトリを名前で直接指定するか,反復記号(...)やハイフン(-)のワイルドカード文字を使用します。ワイルドカードについての詳細は,第 3.2 節 を参照してください。
Extended File Specifications を使用する環境で作業を行う場合,ワイルドカード文字によるディレクトリ構造の検索については,第 5 章 を参照してください。
4.5.1 反復記号(...)ワイルドカード文字
ディレクトリ構造を下向きに検索する場合,反復記号(...)ワイルドカード文字を使用します。現在のディレクトリとその中のすべてのサブディレクトリの中を検索する場合には,次に示すように反復記号だけを使用します。
$ DIRECTORY [...] |
ディレクトリ指定の先頭に反復記号を置くと,現在のディレクトリから検索が開始されます。ただし,ディレクトリ指定の先頭にピリオドを付けると,現在のディレクトリより 1 レベル下のサブディレクトリだけが検索されます。
ディレクトリ構造の中から,すべての最上位ディレクトリとそのサブディレクトリを検索する場合は,アスタリスク(*)の後に反復記号(...)を使用します。
たとえば,現在のディレクトリが[JONES] の場合,[JONES] ディレクトリと [JONES] のすべてのサブディレクトリの中にある FEES.DAT という名前を持つすべてのファイルの最新バージョンを表示するためには,次のように入力します。
$ TYPE [JONES...]FEES.DAT |
たとえば,現在の省略時のディレクトリが [JONES] の場合,ディレクトリ指定の末尾が .SALES であるすべてのサブディレクトリにおいて,FEDERAL.LIS というファイルの最新バージョンを表示するには,次のように入力します。
$ TYPE [...SALES]FEDERAL.LIS |
次のコマンドは,[JONES] と[JONES] のすべてのサブディレクトリにおいて DEPT.DAT という名前を持つすべてのファイルの最新バージョンを表示します。
$ TYPE [...]DEPT.DAT |
現在のディレクトリが [JONES] の場合,次のコマンドは,[JONES] より 1 レベル下の [.LETTERS] サブディレクトリにおいて,MAILING.LIS という名前を持つすべてのファイルを検索します。このとき,[JONES.LICENSES] サブディレクトリは検索されますが,[JONES.LICENSES.MARRIAGE] は検索されません。
$ TYPE [.LICENSES]MAILING.LIS |
現在のディレクトリが [JONES] の場合,次のコマンドは,[JONES] ディレクトリの [.LICENSES] サブディレクトリと,[.LICENSES] サブディレクトリの中のすべてのサブディレクトリにおいて,DEPAT.DAT という名前を持つすべてのファイルの最新バージョンを表示します。
$ TYPE [...LICENSES...]DEPT.DAT |
次のコマンドは(READALL 特権が必要),最大 8 つのレベルのディレクトリ名(最上位ディレクトリと 7 つのサブディレクトリ)を検索します。MFD は検索しません。
$ DIRECTORY [*...] |
ハイフン文字は,現在のデフォルト・ディレクトリより上の [サブ] ディレクトリの短縮指定方法として使用します。ハイフンはそれぞれが 1 つのレベルを表します。ハイフンの後にはサブディレクトリ名(区切りはピリオド)を続けてディレクトリ階層の下のパスを指定します。
多くのハイフンを入力して参照が最上位ディレクトリより上を指定した場合は,エラー・メッセージが表示されます。
次の例では,現在のデフォルト・ディレクトリは [JONES.LICENSES] です。以下のコマンドでは [JONES] 内の STAFF.DIS の最新バージョンが表示されます。
$ TYPE [-]STAFF.DIS |
現在のディレクトリが [JONES.LICENSES] の場合,[JONES.TAXES] ディレクトリにおいて,BILLING.DAT の最新バージョンを表示するためには,次のように入力します。
$ TYPE [-.TAXES]BILLING.DAT |
以下の例では,表示されるコマンドがデフォルト・ディレクトリからディレクトリ階層で現在のレベルから 2 レベル上のディレクトリに変更されます。
$ SET DEFAULT [--] |
ODS-5 ディスクを使用する OpenVMS Alpha バージョン 7.2 またはそれ以降では,ハイフンだけでファイル名とサブディレクトリ名を指定できます。ハイフンと相対指定による(サブ)ディレクトリと区別するため,前者は少なくとも 1 つの RMS エスケープ文字(^)を指定します。以下の指定では,現在のプロセス・デフォルトより 3 つ上のレベルのディレクトリを参照します。
[---] |
以下の指定では,ディレクトリ(UFD)"-" を参照します。
[^---] |
本章では,ディレクトリを名前で指定する方法(名前形式と呼ぶ)について説明してきました。ただし,ディレクトリは UIC 形式で指定することもできます。UIC 形式は,2 つの 8 進数から構成されます。この 2 つの 8 進数がユーザ・ファイル・ディレクトリ(UFD)を指す UIC(利用者識別コード) を表します。ファイル指定が可能な DCL コマンドのほとんどが,UIC 形式のディレクトリ名を認識できます。 リアルタイム Resource Sharing Executive(RSX)オペレーティング・システムを操作する場合を除いて,通常,この形式を使用する必要はありません。
UIC ディレクトリ指定の形式は,次のとおりです。
[グループ,メンバ] |
たとえば,[122,1] は,グループ 122 のメンバ 1 を表す UIC ディレクトリ指定です。通常,UIC 形式のディレクトリ名はディレクトリの所有者の UIC に対応しますが,必ず対応するわけではありません。
アスタリスク(*)ワイルドカードは UIC ディレクトリ指定に使用できます。たとえば,[*,6] は,任意のグループ番号において,メンバ番号 6 を持つすべてのディレクトリを示します。検索されるのは,UIC 形式のディレクトリだけです。[*,*] というディレクトリ指定は,UIC 形式ですべてのディレクトリを検索します。UIC 形式と同様,名前形式のすべてのディレクトリを検索する場合,[*] と指定します。
4.6.2 UIC 形式から名前形式への変換
UIC 形式のディレクトリ名は名前形式のディレクトリ名に変換できます。必要であれば,グループ番号とメンバ番号の左にゼロをいくつか追加して 6 文字の名前を作成すれば,名前形式のディレクトリ名となります。
UIC 形式と名前形式を組み合わせることはできません。UIC 形式の名前を持つディレクトリのサブディレクトリの 1 つを指定する場合には,UIC 形式を名前形式に変換します。
UIC ディレクトリ指定 [122,1] と次の名前形式とは同じです。
[122001] |
[122,1]SUB.DIR というサブディレクトリを表す場合には,[122001.SUB] という名前形式のディレクトリを使用します。
OpenVMS Alpha バージョン 7.2 で,次の 2 つの構成要素から成る拡張ファイル指定がインプリメントされました。
これらの構成要素を利用することによって,OpenVMS Alpha システムは(Advanced Server for OpenVMS を使用して),Windows 環境と同様の名前を持つファイルの格納,管理,サービスの提供,およびアクセスを,これまでよりもはるかに柔軟に行うことができます。
深いディレクトリと拡張ファイル名には,次の利点があります。
On-Disk Structure(ODS)とは,ディスクに格納された情報に与えられる論理構造を指します。ODS-2 は,OpenVMS オペレーティング・システムの省略時のディスク構造です。ODS-5 は ODS-2 のスーパーセットであり,特にマルチプラットフォーム環境で便利です。ODS-5 ボリューム構造には,次の機能があります。
従来(ODS-2)のファイル指定の形式は 39.39 であり,ファイル名とファイル・タイプを区切るには 1 個のピリオド(.)しか使用できません。
ODS-5 ボリュームでは,ファイル名とファイル・タイプを合わせた長さの上限は,8 ビット文字では 236,16 ビット文字では 118 です。 1 たとえば,次のようなファイル名を使用することができます。
$ CREATE This.File.Name.Has.A.Lot.Of.Periods.DAT $ CREATE - _$ ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceed - _$ ingThe39^,39presentInPreviousVersionsOfOpenVMS $ DIRECTORY Directory TEST$ODS5:[TESTING] ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceeding The39^,39presentInPreviousVersionsOfOpenVMS;1 This^.File^.Name^.Has^.A^.Lot^.Of^.Periods.DAT;1 Total of 2 files. |
従来(ODS-2 準拠)のファイル名では,英数字(A-Z,a-z,0-9),ドル記号($),アンダースコア(_),およびハイフン(-)を使用することができます。ODS-5 では,より多くの種類の文字セットをファイル名に使用することができます。
ISO LATIN-1 および Unicode(UCS-2)文字セット
ODS-5 は,8 ビットの ISO Latin-1 文字セットと 16 ビットの Unicode(UCS-2)文字セットを使用したファイル名をサポートしています。ISO Latin-1 各国語文字セットは,従来の ASCII 文字セットのスーパーセットです。拡張ファイル指定では,8 ビットの ISO Latin-1 各国語文字セットにあるすべての文字をファイル指定の中で使用することができますが,アスタリスク(*)と疑問符(?)は使用できません。
一部の ISO Latin-1 文字をファイル指定の中で使用して正しく解釈されるためには,エスケープ文字を前に付ける必要があります。RMS および DCL は,拡張ファイル名に含まれているサーカンフレックス(^)をエスケープ文字として解釈します。次のリストは,エスケープ文字を使用する場合の規則を示しています。
. , ; [ ] % ^ & |
ファイル指定の中で前にエスケープ文字(^)が付いていないすべての文字は,ISO Latin-1 と想定される。
ファイル名に特殊文字が含まれている場合には,VAX システムからアクセスすることができません。複合アーキテクチャ環境についての詳細は, 第 5.7 節 を参照してください。 |
拡張ファイル名の中でピリオド(.)をリテラル文字として使用するには,ピリオドがファイル名文字であるかまたは区切り文字であるかを,RMS が判断できなければなりません。
拡張ファイル名の中で使用されているピリオド(.)が 1 つだけの場合には,そのピリオドは区切り文字として解釈されます。以前のバージョンの OpenVMS と同様に,1 つのピリオドの後に数字が続いた場合にも,この処理が実行されます。
$ CREATE Test.1 |
このコマンドによって,次のファイルが作成されます。
Test.1;1 |
1 つのファイル名の中に複数のピリオド(.)がある場合には,RMS は,最後のピリオドの後のすべての文字を調べます。
最後のピリオドの後の文字 | 判断 |
---|---|
すべて数値 | バージョン番号であると判断される。 |
すべて数値であり,その前にマイナス記号(-)が付いている | バージョン番号であると判断される。 |
6 個以上の数字 | RMS はこのファイル名を無効なファイル名と判断し,受け付けない。 |
数字でない文字 | 最後のピリオドはファイル・タイプ区切り文字として解釈される。 |
たとえば,次のコマンドを使用したとします。
$ CREATE Test4.3.2.1 |
この結果,次のファイルが作成されます。
Test4^.3.2;1 |
このとき,2 はファイル・タイプ,1 はファイル・バージョンです。
バージョン番号がセミコロン(;)によって明示的に区切られている場合には,5 文字以下の数値文字でなければならず,前にマイナス記号(-)を付けることができます。
5.1.3 大文字と小文字の区別の保存
以前のバージョンの OpenVMS では,DCL および RMS は,すべてのファイル指定を大文字に変換していました。
ODS-5 ボリュームでは,すべてのファイル名の大文字と小文字の区別は,ユーザが作成したときの状態のまま保存されます。次に例を示します。
$ CREATE KitContents.Txt $ DIRECTORY Directory DISK1:[USER1] KitContents.Txt;1 |
大文字と小文字の区別が異なるだけで,同じ名前のファイル名を複数作成すると,DCL は後でできたファイルを新しいバージョンとして扱い,大文字と小文字の区別を元のファイルと同じ状態に変換します。次に例を示します。
$ CREATE CaPri $ CREATE CAPRI $ CREATE capri $ DIRECTORY Directory DISK1:[USER1] CaPri.;1 CaPri.;2 CaPri.;3 |
ワイルドカードは,単一文字の場合でも複数文字の場合でも,ODS-5 ファイルでは予想どおりに動作します。単一文字のワイルドカードは,ファイル名またはファイル・タイプの中の特定の 1 文字だけを表しますが,ファイル・バージョン文字列の中で使用することはできません。複数文字のワイルドカードは,ファイル名またはファイル・タイプの中の(0 個も含む)任意の数の文字を表します。複数文字のワイルドカードは,バージョン文字列の代わりに使用することができます。
1 ODS-5 用に変更されていないプログラムやユーティリティでは,完全なファイル指定の長さが合計で 255 バイト以内に制限されたり,省略される可能性があります。 |
前へ | 次へ | 目次 | 索引 |