ディレクトリとは

日本語 OpenVMS のもとで,ディスク上に作成されるファイルは,必ずディレクトリに登録されます。つまり,ディレクトリはファイルの登録簿です。ディレクトリの内容は,登録されているファイルのファイル名,ファイル・タイプ,バージョン番号,ファイルの位置に関する情報です。

ディレクトリ自身も,ディスク上の情報であり 1 つのファイルです (ディレクトリ自身のことをディレクトリ・ファイルということもあります)。ファイル名 = ディレクトリ名で,ファイル・タイプは .DIR,バージョン番号は 1 です。

ディレクトリの種類と階層構造

ディレクトリは,ツリー状の階層構造になっています。そのためディレクトリの名前を指定する場合には,階層構造のどこにあるかを明示する必要があります。ディレクトリには,次の 3 種類があります。

◆ルート・ディレクトリ

すべてのユーザファイル・ディレクトリを登録してあるディレクトリ。ルート・ディレクトリは 1 個のディスクに必ず 1 個だけ存在します。ルート・ディレクトリのファイル名は 000000,ファイル・タイプは .DIR です。


    [000000]    

◆ユーザファイル・ディレクトリ

ユーザの持つディレクトリ。ユーザファイル・ディレクトリはディレクトリ名を [ ] で囲んで指定します。

ユーザファイル・ディレクトリを指定する際にルート・ディレクトリの指定は省略できます。たとえば DKA0:[000000.YAMADA] と指定すると,ディスク DKA0 の中にある [YAMADA] というユーザファイル・ディレクトリを指定することになります。


    [YAMADA]    

◆サブファイル・ディレクトリ (サブ・ディレクトリとも呼ぶ)

ユーザファイル・ディレクトリの下に作るディレクトリ。ディレクトリ名をピリオドで区切って指定します。

サブファイル・ディレクトリは,ユーザファイル・ディレクトリを含めて 255 階層まで作成することができます。(日本語 OpenVMS のバージョン 7.2 より前のバージョンでは 8 階層まで。)


    [YAMADA.PROJECT.REPORT]    

ディレクトリ・ファイルやファイルの関係を次の図に示します。

ディレクトリ階層構造


ディレクトリ名の規則

ディレクトリ名は,次の規則に従って付けます。

ディレクトリを作成する -- CREATE/DIRECTORY

ルート・ディレクトリとユーザファイル・ディレクトリは通常,システム管理者が作成します。ユーザがサブファイル・ディレクトリを作成するには,次のようにします。


    $ CREATE/DIRECTORY [ディレクトリ名]    

ディレクトリ名は次のように指定します。


    [ユーザファイル・ディレクトリ名.サブファイル・ディレクトリ名]    

ディレクトリを指定する場合には,ディレクトリの名前を,[ ] で囲む点に注意してください。また,複数のディレクトリ名の指定をすることもできます。複数のディレクトリを指定する場合は,ディレクトリの名前をコンマで区切ります。




現在のディレクトリを調べます。


    $ SHOW DEFAULT 
      DKA0:[YAMADA]    

ユーザファイル・ディレクトリ [YAMADA] の下に新しくサブファイル・ディレクトリ [YAMADA.SUB] を作成します。 (現在のディレクトリの下のサブディレクトリを作成する場合は,現在のディレクトリ名の代わりにピリオドを指定できます。$ CREATE/DIRECTORY [.SUB])


    $ CREATE/DIRECTORY [YAMADA.SUB]    

ユーザファイル・ディレクトリ [YAMADA] の下にディレクトリ・ファイル SUB.DIR が作成されたことを確かめます。


    $ DIRECTORY 
 
    Directory DKA0:[YAMADA] 
 
    LETTER.DIR;1   PROJECT.DIR;1   SUB.DIR;1   T_MEIBO.LIS;1    
    UG.TXT 
 
    Total of 5 files. 

新しく作成されたサブファイル・ディレクトリ [YAMADA.SUB] にデフォルト・ディレクトリを変更します。 ($ SET DEFAULT [.SUB] でもよい。)


    $ SET DEFAULT [YAMADA.SUB]    

サブファイル・ディレクトリ [YAMADA.SUB] の中を確認すると,まだ何もファイルはありません。


    $ DIRECTORY 
    %DIRECT-W-NOFILES, no files found    
    $ 

現在のディレクトリを調べる -- SHOW DEFAULT




現在のディレクトリがわからない場合は,SHOW DEFAULT コマンドで調べることができます。また,現在のディレクトリを変更した場合に, SHOW DEFAULT コマンドで確認することができます。


                                   
    
      $ SHOW DEFAULT 
        DKA0:[YAMADA.GIJIROKU] 
                                

現在のディレクトリを変更する -- SET DEFAULT

SET DEFAULT コマンドを使用すると,ユーザが管理するディレクトリであれば,自由に現在のディレクトリを変更することができます。ファイルを探す場合だけでなく,ファイルを置くディレクトリを変更したい場合にも,SET DEFAULT コマンドを使用して,現在のディレクトリを変更します。


    $ SET DEFAULT [ディレクトリ名]    

注意

SET DEFAULT コマンドを使用する際に存在しないディレクトリを指定しても,日本語 OpenVMS はエラー・メッセージを表示しません。したがって,SET DEFAULT コマンドを実行したら,現在のディレクトリが正しく変更できたかどうかを SHOW DEFAULT コマンドで確認してください。

ディレクトリ指定の簡略化

ディレクトリ指定を簡単にするために,次の表にある特殊なシンボルを使うことができます。

ディレクトリの指定で使用するシンボル
シンボル 意味
-(ハイフン) ディレクトリ階層構造の中の 1 レベル " 上 " を指定
(ディレクトリ指定の最初に書ける)
.(ピリオド) ディレクトリ階層構造の中の区切りを表す
(この後にサブファイル・ディレクトリ名または特殊シンボルである  * や % を指定する)
...(ピリオド 3 つ) 現在のディレクトリおよびその下にあるすべてのレベルのサブファイル・ディレクトリを指定
*(アスタリスク) ディレクトリ名を構成する 0 から 39 文字までと一致
%(パーセント) ディレクトリ名の 1 文字と 1 対 1 に対応
?(感嘆符) 日本語ファイル名の使用が有効な時のみに使用できる。ディレクトリ名の 1 文字と 1 対 1 に対応

サブファイル・ディレクトリを指定する場合は,次の 2 つの方法があります。

先頭に . または - を使用して指定すると,その前に現在のデフォルト・ディレクトリを追加して指定したのと同じ意味になります。また,単に,[] とだけ指定した場合は,現在のデフォルト・ディレクトリ指定そのものを表します。

現在のディレクトリの変更例




SET DEFAULT コマンドを実行したときの実行例を示します。これらの例は,下記の図のディレクトリ構造で実行した場合の実行結果です。図の中で, [  ] で囲まれている名前が,ディレクトリの名前です。また,現在のディレクトリは,[YAMADA.GIJIROKU] です。

ディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.GIJIROKU] 
    $ SET DEFAULT [YAMADA.REPORT.GROUP]    
    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT.GROUP] 

1 つ上のレベルのディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.GIJIROKU]    
    $ SET DEFAULT [-] 
    $ SHOW DEFAULT 
      DKA0:[YAMADA] 

1つ上のディレクトリを基準にしてディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.GIJIROKU] 
    $ SET DEFAULT [-.REPORT.WEEK]    
    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT.WEEK] 

現在のディレクトリの下にあるディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.GIJIROKU] 
    $ SET DEFAULT [.KOJIN] 
    $ SHOW DEFAULT 
      DKA0:[YAMADA.GIJIROKU.KOJIN]    

現在のディレクトリからファイルを探す -- DIRECTORY

ファイルの一覧を表示したり,現在のディレクトリにどのようなファイルがあるか,また,ファイルの名前を知りたい場合に, DIRECTORY コマンドを使用します。また,ファイルの名前だけでなく個々のファイルの大きさやファイルの個数などの情報を知ることもできます。


    $ DIRECTORY ファイル名    

複数のファイルを指定することもできます。複数のファイルを指定する場合は,ファイルの名前をコンマで区切ります。ファイルの名前にワイルドカード文字も使用でき,またファイルの名前を省略することもできます。省略した場合,現在のディレクトリのすべてのファイルが表示されます。

現在のディレクトリからファイルを探す例




DIRECTORY コマンドを実行すると,次の実行例のようにファイルの一覧が表示されます。

1 つのファイルを指定した場合


    $ DIRECTORY GROUP_AUG.TXT 
 
    Directory DKA0:[YAMADA.GIJIROKU]    
 
    GROUP_AUG.TXT;1 
 
    Total of 1 file. 

複数のファイルを指定した場合


    $ DIRECTORY GROUP_AUG.TXT,GROUP_SEP.TXT 
 
    Directory DKA0:[YAMADA.GIJIROKU] 
 
    GROUP_AUG.TXT;1     GROUP_SEP.TXT;5     GROUP_SEP.TXT;4    
    GROUP_SEP.TXT;3     GROUP_SEP.TXT;2     GROUP_SEP.TXT;1 
 
    Total of 6 files. 

ファイルの名前にワイルドカード文字(*)を指定した場合


    $ DIRECTORY GROUP_S*.TXT 
 
    Directory DKA0:[YAMADA.GIJIROKU] 
 
    GROUP_SEP.TXT;5     GROUP_SEP.TXT;4     GROUP_SEP.TXT;3    
    GROUP_SEP.TXT;2     GROUP_SEP.TXT;1 
 
    Total of 8 files. 

ファイルを省略した場合


    $ DIRECTORY 
 
    Directory DKA0:[YAMADA.GIJIROKU] 
 
    GROUP_AUG.TXT;1     GROUP_OCT.TXT;2     GROUP_OCT.TXT;1    
    GROUP_SEP.TXT;5     GROUP_SEP.TXT;4     GROUP_SEP.TXT;3 
    GROUP_SEP.TXT;2     GROUP_SEP.TXT;1 
 
    Total of 8 files. 

指定したディレクトリからファイルを探す-- DIRECTORY

DIRECTORY コマンドにディレクトリを指定すると,指定したディレクトリのファイルの一覧を表示することができます。現在のディレクトリを変更しないで,他のディレクトリに探したいファイルがあるかどうかを調べることができます。


    $ DIRECTORY  [ディレクトリ名]ファイル名    

複数のディレクトリを指定することもできます。複数のディレクトリを指定する場合は,ディレクトリの名前をコンマで区切ります。ディレクトリの名前にワイルドカード文字も使用できます。

指定ディレクトリからファイルを探す例




DIRECTORY コマンドを実行したときの実行例を示します。これらの例は,下記の図のディレクトリ構造で実行した場合の実行結果です。図中,ディレクトリを [  ] で囲んで示しています。それ以外は通常のファイルです。

1 つのディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT.KOJIN]    


    $ DIRECTORY [YAMADA.REPORT] 
 
    Directory DKA0:[YAMADA.REPORT] 
 
    GROUP.DIR;1         KOJIN.DIR;1    
 
    Total of 2 files. 

複数のディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT]    


    $ DIRECTORY [YAMADA.REPORT.KOJIN],[YAMADA.REPORT.GROUP]    
 
    Directory DKA0:[YAMADA.REPORT.KOJIN] 
 
    KEIHI.TXT;1         SAGYO.TXT;1         TRIP.TXT;1 
 
    Total of 3 files. 
 
    Directory DKA0:[YAMADA.REPORT.GROUP] 
 
    GROUP_KEIHI.TXT;1   MONTH_SAGYO_04.TXT;1 
    MONTH_SAGYO_05.TXT;1                    MONTH_SAGYO_06.TXT;1    
    MONTH_SAGYO_07.TXT;1                    MONTH_SAGYO_08.TXT;1 
    MONTH_SAGYO_09.TXT;1                    MONTH_SAGYO_10.TXT;1 
    MONTH_SAGYO_11.TXT;1                    MONTH_SAGYO_12.TXT;1 
 
    Total of 10 files. 
 
    Grand total of 2 directories, 13 files. 

1 つ上のレベルのディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT.KOJIN]    


    $ DIRECTORY [-] 
 
    Directory DKA0:[YAMADA.REPORT] 
 
    GROUP.DIR;1         KOJIN.DIR;1    
 
    Total of 2 files. 

現在のディレクトリの下にあるディレクトリを指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT]    


    $ DIRECTORY [.KOJIN] 
 
    Directory DKA0:[YAMADA.REPORT.KOJIN] 
 
    KEIHI.TXT;1         SAGYO.TXT;1         TRIP.TXT;1    
 
    Total of 3 files. 

現在のディレクトリの下にあるディレクトリをすべて指定した場合


    $ SHOW DEFAULT 
      DKA0:[YAMADA.REPORT]    


    $ DIRECTORY [...] 
 
    Directory DKA0:[YAMADA.REPORT] 
 
    GROUP.DIR;1         KOJIN.DIR;1 
 
    Total of 2 files. 
 
    Directory DKA0:[YAMADA.REPORT.GROUP] 
 
    GROUP_KEIHI.TXT;1   MONTH_SAGYO_04.TXT;1 
    MONTH_SAGYO_05.TXT;1                    MONTH_SAGYO_06.TXT;1    
    MONTH_SAGYO_07.TXT;1                    MONTH_SAGYO_08.TXT;1 
    MONTH_SAGYO_09.TXT;1                    MONTH_SAGYO_10.TXT;1 
    MONTH_SAGYO_11.TXT;1                    MONTH_SAGYO_12.TXT;1 
 
    Total of 10 files. 
 
    Directory DKA0:[YAMADA.REPORT.KOJIN] 
 
    KEIHI.TXT;1         SAGYO.TXT;1         TRIP.TXT;1 
 
    Total of 3 files. 
 
    Grand total of 3 directories, 15 files. 

ディレクトリにワイルドカード文字(*)を指定した場合


    $ DIRECTORY [YAMADA.REPORT.*] 
 
    Directory DKA0:[YAMADA.REPORT.GROUP] 
 
    GROUP_KEIHI.TXT;1   MONTH_SAGYO_04.TXT;1 
    MONTH_SAGYO_05.TXT;1                    MONTH_SAGYO_06.TXT;1    
    MONTH_SAGYO_07.TXT;1                    MONTH_SAGYO_08.TXT;1 
    MONTH_SAGYO_09.TXT;1                    MONTH_SAGYO_10.TXT;1 
    MONTH_SAGYO_11.TXT;1                    MONTH_SAGYO_12.TXT;1 
 
    Total of 10 files. 
 
    Directory DKA0:[YAMADA.REPORT.KOJIN] 
 
    KEIHI.TXT;1         SAGYO.TXT;1         TRIP.TXT;1 
 
    Total of 3 files. 
 
    Grand total of 2 directories, 13 files. 

ファイルの大きさを表示する -- DIRECTORY/SIZE

ファイルの大きさを表示するには,次のように入力します。


    $ DIRECTORY/SIZE  ディレクトリ指定    

ここでディレクトリ指定をしない場合は現在のディレクトリ内にあるファイルの大きさが表示されます。

作成日を表示する -- DIRECTORY/DATE

ファイルの作成日を表示するには,次のように入力します。


    $ DIRECTORY/DATE  ディレクトリ指定    

ここでディレクトリ指定をしない場合は現在のディレクトリ内にあるファイルの作成日が表示されます。

ファイルの個数を表示する -- DIRECTORY/TOTAL

ファイルの個数を表示するには,次の例のように入力します。


    $ DIRECTORY/TOTAL  ディレクトリ指定    

ここでディレクトリ指定をしない場合は現在のディレクトリ内にあるファイルの個数が表示されます。

結果をファイルに出力する -- DIRECTORY/OUTPUT

ファイルの一覧をディスプレイに表示せずにファイルに出力するには,次のように入力します。


    $ DIRECTORY/OUTPUT=出力ファイルディレクトリ指定    

ここでディレクトリ指定をしない場合は現在のディレクトリ内にあるファイルの一覧が出力されます。

(修飾子 /COLUMNS=1 を付けると,出力表示のカラム数が 1 になり見易いリストができます。)